我有一个具有这种结构的GridView:
<GridView>
<GridViewColumn Header="Data" Width="150" DisplayMemberBinding="{Binding Path = Score}"/>
</GridView>
现在所有项目都在一个可观察的集合中,我想检查行的值是否被更改,然后在代码后面自动选择行。实际上我已经定义了条件,但是我无法选择将代码改为GridView的项目,有人知道怎么做?
答案 0 :(得分:1)
您应该在DataGrid或ListView
中使用SelectedItem属性 SelectedItem="{Binding Path=YourSelectedItem}"
答案 1 :(得分:1)
如果您使用observablecollection
绑定网格,那么我认为您可以使用CollectionChanged
事件来检测集合/数据是否已更改。
以下是一个例子:
/// <summary>
/// The collection of drivers just changed: add or remove
/// </summary>
/// <param name="sender">Sernder of the Event.</param>
/// <param name="e">Event Arguments.</param>
private void Drivers_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// Only Delete
if (e.Action == NotifyCollectionChangedAction.Remove)
{
foreach (FormulaOneDriver driver in e.OldItems)
{
driver.Delete();
}
}
}
使用它在构造函数中注册事件。
ObservableCollection<FormulaOneDriver> drivers = this.DriversDataGrid.ItemsSource as ObservableCollection<FormulaOneDriver>;
drivers.CollectionChanged += new NotifyCollectionChangedEventHandler(this.Drivers_CollectionChanged);