我有一个数据网格,我绑定(bind)了一些项目。这个网格有一个 SelectionChanged 事件。我有一个带有 Click 事件的按钮。问题是当用户单击按钮时,数据网格的 selectionchanged 事件也会被触发。
private void dgLogins_SelectionChanged(object sender,SelectionChangedEventArgs e)
{
UserLoginEO objUserLogin = (UserLoginEO)dgLogins.SelectedItem;
txtCodeKarbar.Text = objUserLogin.CodeKarbar.ToString();
txtName.Text = objUserLogin.Name;
txtFamily.Text = objUserLogin.Family;
txtUserName.Text = objUserLogin.UserName;
e.Handled = true;
}
XAML:
<DataGrid Margin="0,228,0,0" Name="dgLogins" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=ObsUsers, ValidatesOnDataErrors=True, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectionChanged="dgLogins_SelectionChanged" >
<DataGrid.Columns>
<DataGridTextColumn Header="UserId">
<DataGridTextColumn.Binding>
<Binding Path="CodeKarbar" Mode="TwoWay">
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Name">
<DataGridTextColumn.Binding>
<Binding Path="Name" Mode="TwoWay">
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Familt">
<DataGridTextColumn.Binding>
<Binding Path="Family" Mode="TwoWay">
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="UserName">
<DataGridTextColumn.Binding>
<Binding Path="UserName" Mode="TwoWay">
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
最佳答案
您可以检查 SelectionChangedEventArgs 的 OriginalSource 属性,因此您可以检查哪个控件引发的事件,如果它来自按钮而不是忽略。
关于c# - WPF DataGrid SelectionChanged 和按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30636400/