【发布时间】:2018-04-06 18:02:58
【问题描述】:
我知道这个问题和Accessing items in ObservableCollection bound to WPF DataGrid类似
但是这个问题的答案对我没有帮助。
我在 ObservableCollection 所在的位置创建了一个类 (DataItem.cs)。 还有另一个类(SelectableViewModel.cs),其中列的属性是。
public class DataItem : INotifyPropertyChanged
{
public ObservableCollection<SelectableViewModel> FirmCustomerItems { get; set; } = new ObservableCollection<SelectableViewModel>();
}
public class SelectableViewModel : INotifyPropertyChanged
{
private string _columnName;
public string ColumnName
{
get { return _columnName; }
set
{
if (_columnName== value) return;
_columnName= value;
OnPropertyChanged();
}
}
}
如果我不想访问 SelectedItem/Value/Items[0],我会得到以下结果:
“MyProject.SelectableViewModel”。
这是我想要访问 SelectedItem 的方式:
DataGrid dataGrid = sender as DataGrid;
switch (dataGrid.Name)
{
case "FirmCustomerTableDataGrid":
//var selected = dataGrid.SelectedValue; // my First try
//var selected = dataGrid.SelectedItem; // my Second try
var selected = dataGrid.SelectedItems[0] // my Third try
MessageBox.Show(selected.ToString());
break;
}
我的问题顶部的链接问题的答案不起作用,因为我有一个用于列属性的类 (SelectableViewModel)。
但我不知道如何解决这个问题,因为我对 MVVM 不太熟悉(其余代码是代码隐藏)
【问题讨论】:
标签: c# wpf mvvm datagrid observablecollection