我是WPF的初学者。我试图用DataRow / DataRowView读取Datagrid选定项。我的代码是 -
$(document).ready(function () {
$("#Monday").rules('remove', 'range');
$("#Tuesday").rules('remove', 'range');
$("#Wednesday").rules('remove', 'range');
$("#Thursday").rules('remove', 'range');
$("#Friday").rules('remove', 'range');
$("#Saturday").rules('remove', 'range');
$("#Sunday").rules('remove', 'range');
});
但我面临以下错误 -
“无法转换类型的对象 '<> f__AnonymousTypeb
foreach (System.Data.DataRowView row in dgDocument.SelectedItems) { txtPhotoIDNo.Text = row["PhotoIdNumber"].ToString(); }
1的System.DateTime],System.String,System.Nullable`1 [System.DateTime的],System.String,System.String]' 输入'System.Data.DataRowView'。“
当我尝试使用以下方式时,这样可以正常工作 -
11[System.String,System.Byte,System.String,System.String,System.String,System.Byte[],System.Nullable
问题是当我需要添加新列/更改datagrid列位置时,我需要更改整个指定值的索引。为了解决这个问题,我想用列名称以上述方式赋值。
答案 0 :(得分:2)
最后我发现了我的问题。这是我的SelectedItems的两个值为null。因此,键值对不能完美地准备。以下代码完美无缺。
foreach (System.Data.DataRowView row in dgDocument.SelectedItems)
{
txtPhotoIDNo.Text = row["PhotoIdNumber"].ToString();
}
答案 1 :(得分:1)
SelectedItems列表的内容将是绑定到DataGrid的类型。例如,如果我的代码隐藏中有一个属性List DataSource,我将此列表绑定为数据网格的ItemsSource:
<DataGrid x:Name="grid" ItemsSource={Binding DataSource) />
grid.SelectedItems将返回一个字符串列表。
在您的情况下,DataGrid的ItemsSource绑定到某种匿名类型。虽然我通常不鼓励在这种特殊情况下使用匿名类型,但您的解决方法如下:
foreach (dynamic item in dgDocument.SelectedItems)
{
txtPhotoIDNo.Text = Convert.ToString(item.???);
}
你需要替换???使用匿名类中的属性名称,该类包含您要放入txtPhotoIDNo的数据。
答案 2 :(得分:0)
foreach (dynamic row in dgBarDetails.ItemsSource)
{
myList.Add(row);
}
在我的情况下,row是我的类的一个对象,用于填充ItemsSource。它可以是int或字符串,也可以是ItemsSource
中的任何内容