コントロールを使用してアプリにナビゲーションを実装するために、プレゼンテーション モデルを使用していTreeView
ます。のTreeViewItem
IsSelected プロパティを、双方向バインディングを介してビュー モデルにバインドしています。子を持つノードが選択されている場合、クリックされたノードではなく、そのノードの最初の子が選択されるようにします。TreeViewItem
プレゼンテーション モデルで IsSelected プロパティを設定しているときに、プロパティ変更イベントをリッスンしないようです。最初の子ノードが選択されていますが、親ノードは選択解除されていません。これが私のプレゼンテーションモデルのコードです。
public bool IsSelected {
get {
return this._isSelected;
}
set {
if(this._isSelected != value) {
this._isSelected = value;
if(this.Nodes.Count > 0) {
this._isSelected = false;
this.Nodes[0].IsSelected = true;
}
this.NotifyPropertyChanged("IsSelected");
}
}
}
そして、ここに私のスタイルがありますTreeViewItem
:
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>