我开发一个WPF应用程序,我有一个“买家”命名DataGrid和当复选框被选中
我已经阅读计算器的一些问题,但都去了我的头,我想要访问的行值,我是无法理解他们作为业余尚未:(
这是我的DataGrid XAML代码: -获取DataGrid行值
<DataGrid x:Name="buyer" SelectionMode="Single" HorizontalAlignment="Left" SelectionUnit="FullRow" VerticalAlignment="Top" Height="550" Width="992" HorizontalScrollBarVisibility="Visible" IsReadOnly="True" AutoGenerateColumns="False" FrozenColumnCount="1" Margin="0,45,0,0" SelectionChanged="RowFocus" TargetUpdated="buyer_TargetUpdated">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Joining" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected,UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="ID" Binding="{Binding buy_id}"/>
<DataGridTextColumn Header="Name" Binding="{Binding bname}"/>
<DataGridTextColumn Header="Number" Binding="{Binding mobileno}"/>
</DataGrid.Columns>
</DataGrid>
我也有同样的窗口,上一个按钮,点击就应该给我从那里复选框被选中的行中的值
编辑:目前,我检查如果该复选框是由控制台编写工作也将CheckBox秒。应该是第0列,对吗?但是,当我在控制台中我得到的下一列,即ID值打印出来,我用通过将下面的代码打印值: -
private void Button_Click_3(object sender, RoutedEventArgs e)
{
/* int i = 0;
Console.WriteLine("hey");
foreach (var item in buyer.Items)
{
string s = (buyer.Items[i] as DataRowView).Row.ItemArray[0].ToString();
if (i==0)
{
Console.WriteLine(s);
var row = buyer.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
}
i++;
}*/
if (buyer.SelectedItems.Count > 0)
{
for (int i = 0; i < buyer.SelectedItems.Count; i++)
{
System.Data.DataRowView selectedFile = (System.Data.DataRowView)buyer.SelectedItems[i];
string str = Convert.ToString(selectedFile.Row.ItemArray[0]);
Console.WriteLine(str);
}
}
}
I used both commented and uncommented code
你能还包括是代码点击按钮时执行? –
OK等待我将它添加到您 –
越来越第1列(ID)的问题,因为ItemArray指向该列(Row.ItemArray [1])。使用ItemArray索引遍历列。 – ErnestoDeLucia