MVVMを使用してツリービュー内のノードを拡張するにはどうすればよいですか?MVVMを使用してSilverlightツールキットツリービューで1ノードを拡張する方法は?
私はxレベルのツリービューを持っていて、それをTreeViewコントロールにバインドする独自のクラスを作成しました。
TreeView
リストを作成すると、IsSelected
プロパティをtrue
に設定することができました。 は、だから私はちょうどTreeViewItem
IsSelected
プロパティに私のIsSelected
値をバインドする必要がありますが、それがすべてでそれほど単純ではありません...ここで
は私のクラスである:
public class HierarchicalItem : Model
{
public string Name { get; set; }
public int Id { get; set; }
private bool _IsSelected;
public bool IsSelected
{
get { return _IsSelected; }
set
{
if (_IsSelected != value)
{
_IsSelected = value;
RaisePropertyChanged("IsSelected");
}
}
}
private ObservableCollection<HierarchicalItem> _children;
public ObservableCollection<HierarchicalItem> Children
{
get
{
return _children;
}
set
{
if (_children != value)
{
_children = value;
RaisePropertyChanged("Children");
}
}
}
}
私はIsSelected
とIsExpanded
であることを試してみました:
<controls:TreeView.ItemContainerStyle>
<Style TargetType="controls:TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</controls:TreeView.ItemContainerStyle>
しかし、それはIsSelected
とIsExpanded
が(これはWPFで動作します)読み取り専用であることを、返します。
リストボックスに動的なツリービューがあり、ツリービューのそれぞれに、特定のノードがあるノードへの全体を展開する必要があるため、多くの解決策が見つかっています。たとえば、各ツリービューでId = 30のすべてのノードを展開したいとします。
のSilverlight 5は、今の私はちょうどコンバータを使用し、IsSelectedたそのノード上の色付きの背景を設定し、私はそれが私の問題を解決することを願って、スタイルのセッターが付属していますツリービュー全体を展開すると、ユーザーはノードを見つけなければなりません... – Rumplin