【发布时间】:2010-12-27 12:01:33
【问题描述】:
我正在尝试将 Silverlight 3.0 DataGrid 与 MVVM 设计模式一起使用。我的页面有一个 DataGrid 和一个按钮,该按钮使用命令(来自复合应用程序库)将项目添加到 VM 中的集合。这工作正常,新项目被显示和选择。
我无法解决的问题是如何开始编辑行。我希望新行在用户单击“添加”按钮时立即可编辑,即焦点设置为 DataGrid,新行处于编辑模式。
这是视图中的 XAML:
<Grid x:Name="LayoutRoot">
<StackPanel>
<data:DataGrid ItemsSource="{Binding DataView}"/>
<Button cmd:Click.Command="{Binding AddItemCommand}" Content="Add" />
</StackPanel>
</Grid>
后面的代码有一行代码创建一个VM实例并设置视图的DataContext。
VM 代码是:
public class VM
{
public List<TestData> UnderlyingData { get; set; }
public PagedCollectionView DataView { get; set; }
public ICommand AddItemCommand { get; set; }
public VM()
{
AddItemCommand = new DelegateCommand<object>(o =>
{
DataView.AddNew();
});
UnderlyingData = new List<TestData>();
UnderlyingData.Add(new TestData() { Value = "Test" });
DataView = new PagedCollectionView(UnderlyingData);
}
}
public class TestData
{
public string Value { get; set; }
public TestData()
{
Value = "<new>";
}
public override string ToString()
{
return Value.ToString();
}
}
使用 MVVM 设计模式解决此问题的最佳方法是什么?
【问题讨论】:
标签: c# silverlight silverlight-3.0 datagrid mvvm