MainWindow.xaml
|
<Window xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:local="clr-namespace:MonNamespace"
DataContext="{dxmvvm:ViewModelSource Type=local:MainWindowVM}">
|
MainWindowVM.cs
|
using DevExpress.Xpf.Mvvm.POCO; // DevExpress.Mvvm.v15.1 + DevExpress.Xpf.Core.v15.1
namespace MonNamespace
{
public class MainWindowVM
{
// We recommend that you not use public constructors
// to prevent creating the View Model without the ViewModelSource
protected MainWindowVM() { }
//This is a helper method that uses the ViewModelSource class for creating a LoginViewModel instance
public static MainWindowVM Create()
{
return ViewModelSource.Create(() => new MainWindowVM());
}
}
}
|
Des propriétés bindables sont générées pour toutes les propriétés :
- auto-implémentés { get; set; } avec get public et set public ou protected
- virtuelles
MainWindowVM.cs
|
public virtual string BindableProperty { get; set; }
// marquer une propriété comme non bindable
[BindableProperty(isBindable: false)]
public virtual string NonBindableProperty { get; set; }
// 2 méthodes peuvent être définies pour intercepter le changement de valeur de la propriété
protected void OnBindablePropertyChanged(string oldValue) { }
protected void OnBindablePropertyChanging(string newValue) { }
// forcer le nom de la méthode
[BindableProperty(OnPropertyChangedMethodName = "Update")]
public virtual string BindableProperty { get; set; }
protected void Update() { }
|
Des commandes sont générés pour toutes les méthodes:
- sans paramètre
- avec un paramètre
MainWindow.xaml
|
<Button Content="bBb"
Command="{Binding Path=DoItCommand}" />
|
MainWindowVM.cs
|
// DoItCommand will be created for the DoIt and CanDoIt methods:
// DoItCommand = new DelegateCommand<string>(DoIt, CanDoIt);
public void DoIt(string paramater) { ... }
public bool CanDoIt(string paramater) { returm true; }
[Command(isCommand: false)]
public void NotACommand() { }
|
Erreurs
Ajouter une référence à DevExpress.Xpf.Core.v15.1