c# - Listview 中的 TextBox - 在 TextBox TextChanged 上获取 ListViewItem

标签 c# wpf xaml

我有一个显示一些 TextBoxesListView。对于每个 TextBox,我都会捕获一个 SelectionChanged 事件。

我的 XAML 文件看起来像这样:

<ListView>
    <GridView>
        ...
        <DataTemplate>
            <TextBox SelectionChanged="Box_SelectionChanged" />
        </DataTemplate>
        ...
    </GridView>
</ListView>

我的 Xaml CS 文件如下所示:

private void Box_SelectionChanged(object sender, TextChangedEventArgs e) {}

在我的 Box_SelectionChanged 函数中,我想获取其中更新了文本框的 ListViewItem

我该怎么做?

最佳答案

你可以试试这个:

将此方法添加到您的类中:

public static T FindVisualParent<T>(UIElement element) where T : UIElement
        {
            UIElement parent = element; while (parent != null)
            {
                T correctlyTyped = parent as T; if (correctlyTyped != null)
                {
                    return correctlyTyped;
                }
                parent = VisualTreeHelper.GetParent(parent) as UIElement;
            } return null;
        }

然后在 Box_SelectionChanged 事件处理程序中调用此方法:

        private void Box_SelectionChanged(object sender, RoutedEventArgs e)
        {          
            var tmp = FindVisualParent<ListViewItem>(sender as TextBox);
        }

关于c# - Listview 中的 TextBox - 在 TextBox TextChanged 上获取 ListViewItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12608641/

相关文章:

c# - 如何统一存储 256 位整数?

c# - 如何将异步 Func 或 Action 转换为委托(delegate)并调用它

c# - 我可以从内部禁用滚动查看器吗?

c# - 棋盘游戏棋子移动算法

wpf - 在WPF中为什么PasswordBox和TextBox是不同的控件?

c# - 在 aspx 中显示代码隐藏

c# - 同步访问多个线程可以访问的对象

wpf - 如何防止 ComboBox 中的 NewItemPlaceholder 行绑定(bind)到与 WPF 中的 DataGrid 相同的 DataTable

c# - WPF 仅访问具有依赖属性的派生类的单个实例

wpf - 如何单击文本框(或标签)来切换复选框