と入力してください。リストボックスに項目を入力したいのですが、多くの例がありますが、私は何か悪いと思います。WPFリストボックス内の項目を検索するには、
私はリストボックスの辞書にバインドします。友人が私のクラスで、それは次のようになります。私はここにリストボックスの上に独自のデータテンプレートを持つ
[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>
Iテキスト検索を有効にするNickによる検索が必要です.NickはFriendクラスの文字列プロパティです。
IsTextSearchEnabled="True" TextSearch.TextPath="Nick"
しかし、動作しません。私は、IsTextSearchEnabledを有効にして、ItemオブジェクトのstringプロパティにTextSearch.TextPathを設定する必要があることを私は知っています。
私は悪いです。アドバイスありがとうございます。
はい、それは観測可能なコレクションです。ありがとう、それは今良い仕事だ。 –