2011-01-21 5 views

答えて

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を祝福!