Was ist der beste Weg, Befehle in WPF zu verwenden?Verwenden Sie ICommand in WPF
Ich benutze einige Befehle, diese Befehle können eine Weile dauern. Ich möchte, dass meine Anwendung während der Ausführung nicht einfriert, aber ich möchte, dass die Funktionen deaktiviert werden.
gibt es mein MainWindow.xaml:
<Window ...>
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
<Grid>
<Button Grid.Row="0"
Grid.Column="0"
Style="{StaticResource StyleButton}"
Content="Load"
Command="{Binding LoadCommand}"/>
<Button Grid.Row="0"
Grid.Column="1"
Style="{StaticResource StyleButton}"
Content="Generate"
Command="{Binding GenerateCommand}"/>
</Grid>
</Window>
und meine MainViewModel.cs:
public class MainViewModel : ViewModelBase
{
#region GenerateCommand
#endregion
#region Load command
private ICommand _loadCommand;
public ICommand LoadCommand
{
get
{
if (_loadCommand == null)
_loadCommand = new RelayCommand(OnLoad, CanLoad);
return _loadCommand;
}
}
private void OnLoad()
{
//My code
}
private bool CanLoad()
{
return true;
}
#endregion
}
sah ich eine Lösung mit Hintergrund Arbeiter, aber ich weiß nicht, wie es zu benutzen. Und ich frage mich, ob ich eine Instanz per Befehl erstellen soll.
Gibt es einen saubereren/besten Weg?
haben einen Blick: http://stackoverflow.com/questions/30740642/asynchronous-mvvm-commands –