一·需要用到的特性如下:
1,数据绑定;2,列表容器的深拷贝;3,路由命令;4,MVVM思想
二·下面我用一个可编辑数据的DataGrid作为示范:
1. 首先,我们在xaml中创建一个DataGrid控件,控件的的数据源绑定在ViewModel中
<Window x:Name="window"
x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:sys ="clr-namespace:System;assembly=mscorlib"
Title="我爱你"
>
<DataGrid x:Name="Grid" Margin="0,0,18,0" ItemsSource="{Binding CurrentViewModel.CurrentList, ElementName=window, Mode=TwoWay, UpdateSourceTrigger= PropertyChanged BeginningEdit = "DataGrid_BeginningEdit"}" /></window>
2.当然数据源绑定的操作也可以在后台代码中进行,因为后台中也会进行路由命令的绑定操作:
namespace View
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//将ViewModel类作为Window的依赖属性
public static readonly DependencyProperty CurrentViewModelProperty = DependencyProperty.Register("CurrentViewModel", typeof(ViewModel), typeof(MainWindow),
new PropertyMetadata(new ViewModel()));
public ViewModel CurrentViewModel
{
get { return (ViewModel)GetValue(CurrentView