1

いくつListViewか表示するがありますTextBoxes。それぞれについてTextBox、私はSelectionChangedイベントをキャッチしています。

私のXAMLファイルは次のようになります。

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

そして、私のXamlCSファイルは次のようになります。

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

私の関数では、テキストボックスが更新されたBox_SelectionChangedを取得したいと思います。ListViewItem

どうすればいいですか?

4

1 に答える 1

5

あなたはこれを試すことができます:

このメソッドをクラスに追加します。

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);
        }
于 2012-09-26T19:30:16.167 に答える