WPF如何在数据网格中获得当前编辑的内容

本文关键字:编辑 数据 网格 数据网 WPF | 更新日期: 2023-09-27 18:11:10

给定一个数据网格绑定到一个CollectionViewSource谁的源是一个ObservableCollection,当第一次显示OC实例化显示单行没有任何东西在它。

<DataGridTextColumn x:Name="observationNameColumn"  Width="auto" Header="Observation Name" Binding="{Binding ObservationName}"/>

我想在任何给定字段中输入文本,以启动基于用户输入的EF后端查询。为了做到这一点,我在相同的数据网格中添加了一个按钮。一个带有click处理程序的简单按钮…

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button x:Name="XBTNSearch"  Click="XBTNSearch_Click" Padding="5,0,5,0">Enter Search Criteria and Search</Button>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

当使用编辑值单击行时,这是所使用的代码类型。

    private void XBTNSearch_Click(object sender, RoutedEventArgs e)
    {
        var context = ((Button)sender).DataContext;
        Debugger.Break();
        FindStuff();
    }

当断点被击中时,它显示了一个可观察集合类型的空模型,即使我确实在其中一个字段中输入了一些东西…我想要这个值,这样我就可以使用EF来'FindStuff'

如何根据按钮的数据上下文获得行单元格中的值,这应该是我编辑的文本的那一行?

WPF如何在数据网格中获得当前编辑的内容

这个问题的解决方案是在Button click事件处理程序中作为第一个语句…

    XDG.CommitEdit();

其中XDG为Xaml数据网格....