Использование TextSearch.Text в DataTemplate

У меня есть очень простой пример :Приложение формы WPF с одной формой, которая содержит словарь с данными:

Dim dict As New Collections.Generic.Dictionary(Of String, String)

Private Sub MainWindow_Loaded() Handles Me.Loaded
    dict.Add("One", "1")
    dict.Add("Two", "2")
    dict.Add("Three", "3")

    lst1.ItemsSource = dict
End Sub

В форме у меня есть ListBox (с именем "lst1" ), который использует "dict" в качестве источника элементов :

<ListBox x:Name="lst1">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding Value}" 
                   TextSearch.Text="{Binding Path=Key, Mode=OneWay}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

. Также у меня есть один несвязанный -ListBox, предварительно заполненный значениями вручную :

<ListBox>
    <Label TextSearch.Text="One" Content="1" />
    <Label TextSearch.Text="Two" Content="2" />
    <Label TextSearch.Text="Three" Content="3" />
</ListBox>

. Поэтому, когда я запускаю приложение выглядит следующим образом:

Application&#39;s window

ВОПРОС:

Если я пытаюсь перемещаться по элементам с помощью клавиатуры, набирая "один", "два" или "три", я преуспеваю только в несвязанном -списке. Связанный список не работает.

Некоторые замечания :1. )Если я нажимаю "[" в связанном списке, фокус переключается с элемента на элемент циклически :он переходит с 1 на 2, с 2 на 3, с 3 на 1, снова с 1 на 2 и т. д. 2. )Я проверил приложение с помощью Snoop. Одно различие, которое я обнаружил между связанными и несвязанными -списками. Оба списка имеют свойство TextSearch.Text, установленное в элементах управления Label (внутри ItemsPresenter ). Но для не связанного -случая :"источник значения" свойства TextSearch.Text - "Локальный".Для связанного случая :"источником значения" является "ParentTemplate".

П.С. (и Н.Б.) Я знаю, что могу использовать TextSearch.TextPath в списке, но это не то, что мне нужно :)Кроме того, установка свойства TextSearch.Text для ListViewItem (с помощью стиля )не помогает.

7
задан Dima 14 April 2012 в 08:13
поделиться