左の矢印をクリックする代わりに、テキストをクリックするだけでTreeViewのグループを展開/折りたたみできるようにするにはどうすればよいですか。
1 に答える
1
次のセッターでツリーアイテムのスタイルを作成する必要があります。
<Style x:Key="TreeItemStyle"
TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded"
Value="{Binding Path=IsExpanded, Mode=TwoWay}"/>
</Style>
次に、IsExpandedという名前のグループビューデータクラスの監視可能なプロパティを追加します。
private bool _isExpanded;
public bool IsExpanded
{
get
{
return this._isExpanded;
}
set
{
if (this._isExpanded != value)
{
this._isExpanded = value;
this.OnPropertyChanged("IsExpanded");
}
}
}
次に、ハイパーリンククリックイベントをインターセプトし、IsExpandedをtrueに設定します。
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
var dc = ((Hyperlink)sender).DataContext;
if (dc is GroupViewData)
{
((GroupViewData)dc).IsExpanded = true;
}
}
もちろん、クリックハンドラーの代わりにコマンドを使用するのが最善の方法ですが、プレゼンテーションモデルの構成がわからないため、適切なソリューションを提供できません。同様の要件を持つプロジェクトでは、ビューコードの背後を回避することに成功していると言わざるを得ません。神はWPFを祝福します!
于 2011-01-21T16:03:50.510 に答える