私はwpfアプリケーションを開発しており、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 wait質問に追加します –
ItemArrayがその列(Row.ItemArray [1])を参照しているため、列1(ID)が取得されています。 ItemArrayインデックスを使用して列をループします。 – ErnestoDeLucia