TreeView
を使用しItemTemplate
、プロパティを持つビュー モデルにバインドされているを作成しようとしていIsSelected
ます。
なぜこれが機能しないのか正確にはわからないので、質問があいまいに思われる場合はお詫び申し上げます。
また、アプリにはもっと多くの があるため、コードを問題だと思うものに減らしましたXAML
。
DataTemplate を定義する方法は次のとおりです。
<DataTemplate x:Key="ElementDataTemplate">
<Label Content="{Binding Path=DisplayText}"></Label>
</DataTemplate>
使用方法は次のとおりです。
<TreeView ItemsSource="{Binding Elements}"
ItemTemplate="{DynamicResource ElementDataTemplate}">
<TreeView.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="IsSelected"
Value="{Binding Path=IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.Resources>
</TreeView>
私の ViewModel には DisplayText プロパティと IsSelected プロパティがあります。
データ コンテキストの Elements プロパティと同じ数の項目が表示され、Label の Coutent が DisplayText に適切に設定されているため、ViewModel に正しくバインドされていることがわかります。アプリを実行すると、ゲッターと視覚的に。
ただし、IsSelected
ViewModel のプロパティの getter が呼び出されることはありません (ブレークポイントにヒットすることはありません)。
アプリケーションを実行すると、マウスでアイテムを選択でき、選択が視覚的に反映されるため、TreeView アイテム自体が選択され、ViewModel の IsSelected プロパティにバインドされていないことを指摘しておく必要があります。どんな助けでも大歓迎です!