我在WPF应用程序中使用MVVM模式。 我的ViewModel中有ObservableCollection记录。
public enum RecordState
{
NotChanged,
Changed,
Added,
Deleted,
AlreadyExist
}
public class Record
{
public string FirstId { get; set; }
public RecordState State { get; set; }
public string CurrentId
{
get { return GetIdFromInstance(Instance); }
}
public MyStronglyTypedClass Instance { get; set; }
}
public class MyViewModel
{
public ObservableCollection<Record> Records;
// other code
}
在View中我有DataGrid。
<DataGrid ItemsSource="{Binding }" //>
我必须在ItemsSource =“{Binding / * here * /}”中编写(如果可能),以便将Datagrid项目更改为
Records[0].Instance
Records[1].Instance
Records[2].Instance
...
Records[Records.Count-1].Instance
答案 0 :(得分:0)
{Binding}
表示您的ItemsSource是该DataGrid的DataContext(可能继承自祖先元素)。
您应该做的是将顶级元素(Window,UserControl等..)的DataContext设置为ViewModel类。
然后加里建议:
<DataGrid ItemsSource="{Binding Records}">
你给出的关于动态元素的链接在这方面也是一样的,它增加了更复杂的元素绑定和DataTemplates。