Привет, я хотел бы найти элемент в списке, набрав, я нахожу много примеров, но думаю, что-то я делаю плохо.
Я привязываю к списку свой словарь.Друг мой класс, это выглядит так:
[JsonObject]
[Export]
public class Friend
{
public override string ToString()
{
return Nick;
}
[JsonProperty("idUser")]
public string IdUser { get; set; }
[JsonProperty("nick")]
public string Nick { get; set; }
[JsonProperty("sefNick")]
public string SefNick { get; set; }
[JsonProperty("isFriend")]
public bool IsFriend { get; set; }
[JsonProperty("status")]
public int Status { get; set; }
}
У меня есть собственный шаблон данных в списке вот оно:
<Style x:Key="friendsListStyle" TargetType="{x:Type ListBox}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Grid Name="RootLayout">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60"></RowDefinition>
</Grid.RowDefinitions>
<Image Margin="4,4,4,2" Grid.Column="0">
<Image.Source >
<MultiBinding Converter="{StaticResource imageConverter}">
<Binding Path="Value.ProfilePhoto"></Binding>
<Binding Path="Value.Status"></Binding>
</MultiBinding>
</Image.Source>
</Image>
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock
Text="{Binding Value.Nick}"
Margin="2,2,2,2"
FontSize="13"
FontWeight="Medium"
Grid.Column="0" Grid.Row="0">
</TextBlock>
<TextBlock
Text="{Binding Value.BlockQuote}"
FontSize="11"
FontWeight="Normal"
Foreground="DarkGray"
Grid.Column="0" Grid.Row="1" Margin="2,2,2,2"></TextBlock>
<TextBlock
Text="{Binding Value.Status,Converter={StaticResource statusConverter}}"
Style="{StaticResource StatusStyle}"
Grid.Column="0" Grid.Row="2" >
</TextBlock>
</Grid>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="LayoutTransform" TargetName="RootLayout">
<Setter.Value>
<ScaleTransform ScaleX="1.25" ScaleY="1.25" />
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</Setter.Value>
Я применяю этот шаблон в списке:
<ListBox Name="Friends"
SelectedIndex="{Binding Path=SelectedFriendsIndex,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Path=SelectedFriend, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource friendsListStyle}"
IsTextSearchEnabled="True" TextSearch.TextPath="Nick"
</ListBox>
Я включаю текстовый поиск. Я хочу выполнить поиск по Нику, Ник является строковым свойством класса Friend:
IsTextSearchEnabled="True" TextSearch.TextPath="Nick"
Но это не работает.В примерах я нахожу только то, что вы должны включить IsTextSearchEnabled и установить TextSearch.TextPath на строковое свойство объекта item.
Что я делаю плохо.Спасибо за совет.