我有一个 WPF 数据网格,我正在尝试获取所选项目的第一行的值。根据我在这里找到的以前的问题,我尝试使用以下方法,但没有成功:
var eventid = dataGridArchiveQueue.SelectedItem;
也试过:
var eventid = dataGridArchiveQueue.Columns[0].GetValue(dataGridArchiveQueue.SelectedItem);
我不明白什么?
我有一个 WPF 数据网格,我正在尝试获取所选项目的第一行的值。根据我在这里找到的以前的问题,我尝试使用以下方法,但没有成功:
var eventid = dataGridArchiveQueue.SelectedItem;
也试过:
var eventid = dataGridArchiveQueue.Columns[0].GetValue(dataGridArchiveQueue.SelectedItem);
我不明白什么?
如果您使用 MVVM,您可以将视图模型中的对象绑定到数据网格的 SelectedItem 属性;
<DataGrid SelectedItem="{Binding SelectedItemInMyViewModel}" ... >
...
</DataGrid>
然后在您的视图模型中,您可以使用您喜欢的任何类型公开此属性(这意味着您不需要强制转换它,但提供它作为您绑定到 DataGrid 的 Array/List 对象的类型ItemsSource
例如,如果您将列表绑定到数据网格,则可以在视图模型上拥有;
public Person SelectedItemInMyViewModel { get; set; }
然后,您可以在想查看所选项目时查看该属性。
SelectedItem
是您的行装箱到object
,您需要将其转换回项目类型以访问其成员。