| 

.NET C# Java Javascript Exception

2
Hallo Community,

sitze gerade an einem Problem. Viele Beispiele (eigentlich alle die ich entdeckt habe) mit .Net/Wpf Commands beziehen sich auf Statische Instanzen.

Wie kann ich auf exportierte und importiere Commands zugreifen?

[Export]
public class RegionDestinationChanger : ICommand
{
[Import] private ModuleConfigurations _configurations { get; set; }
[Import] private ILoggerFacade _logger { get; set; }
[Import] private IModuleCatalog _catalog { get; set; }

[ImportingConstructor]
public RegionDestinationChanger(
ModuleConfigurations configurations,
ILoggerFacade logger,
IModuleCatalog catalog)
{
_configurations = configurations;
_logger = logger;
_catalog = catalog;

...
}
#region Implementation of ICommand

public void Execute(object parameter)
{
...
}

public bool CanExecute(object parameter){return true;}
public event EventHandler CanExecuteChanged;
}

[Export]
public class RegionDestinationCommands
{
[Import(typeof(RegionDestinationChanger))]
public ICommand Changer { get; private set; }
}

<Grid>
...
<Button Content="Button" Name="button1" Command="????" CommandParameter="???"/>

Danke
19.03.2012
smartic 510 1 8
smartic 510 1 8
1 Antwort
1
Beim Export muss/sollte in diesem Fall, analog zum Import, mit typeof die Klasse angegeben werden. Die Klasse RegionDestinationCommands sollte dem Window/Page/Usercontrol in irgendweiner Weise bekannt sein z.B. als DataContext. Dann im Xaml das Property "Changer" angeben...

[Export(typeof(RegionDestinationChanger))]
public class RegionDestinationChanger : ICommand
{ ...

<Grid>
...
<Button Content="Button" Name="button1" Command="{Binding Changer}" />


RegionDestinationCommands muss natürlich in irgendweiser Weise an das Control gebunden werden. Zum Beispiel wie folgt (ungetestet) im codebehind...

...
[Import]
RegionDestinationCommands Commands
{
get { return DataContext as RegionDestinationCommands; }
set { DataContext = value; }
}
20.03.2012
me 1,1k 2 9
me 1,1k 2 9
Hi, bin erst jetzt dazu gekommen es zu testen. Ich war zuerst skeptisch, bis ich das letzten Snippet ausprobiert habe. Und es Funktioniert. Super. Thx.
smartic 11.04.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH