![](/img/trans.png)
[英]How to get the selected Row values in TextBoxes for DataGrid in WPF C#
[英]C# WPF DataGrid get row
我有一個 C# WPF 項目,我使用 DataGrid(不是 DataGridView)
我需要使用從 DataGrid 中獲取一行
myGrid.ItemContainerGenerator.ContainerFromItem
我的問題是結果始終為空 - 即使網格中有行(項目)和列。
這是我在調試器輸出中可以看到的內容:
myGrid.Items.Count
16
myGrid.Items[0]
{Certificate.Gasbottle}
BottleNr: "******"
BottleNrVariable: "$BottlenumberCO2CH4H2S"
Gasname: "CO2/CH4/H2S"
myGrid.Items[1]
{Certificate.Gasbottle}
BottleNr: "75436"
BottleNrVariable: "$BottlenumberCO"
Gasname: " CO"
Problem:
(DataGridRow)myGrid.ItemContainerGenerator.ContainerFromItem(myGrid.Items[1]);
null <--- why null? myGrid.Items[1] does exist... (I also get this for all other items)
如果我使用 FromIndex 而不是 FromItem,我也會得到 null:
DataGridRow row = myGrid.ItemContainerGenerator.ContainerFromIndex(1)
您可以按如下方式獲取行:
var itemsSource = myGrid.ItemsSource as IEnumerable;
if (itemsSource != null)
{
foreach (var item in itemsSource)
{
DataGridRow row = myGrid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
}
}
要獲取特定行,
var itemsSource = dataGrid.ItemsSource as IList;
if (itemsSource != null && itemsSource.Count > 1)
{
var item = itemsSource[1];
DataGridRow row = dataGrid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.