2009-12-07 55 views

回答

1

既然你提的棱鏡,我假設你有一個控制器或視圖模型連接到包含您的TreeView的觀點...

既然如此,露出一個布爾屬性IsExpanded

private bool _isExpanded; 
    public bool IsExpanded 
    { 
     get { return _isExpanded; } 
     set 
     { 
      if (value != _isExpanded) 
      { 
       _isExpanded = value; 
       RaisePropertyChanged("IsExpanded"); 
       // Apply custom logic here... 
      } 
     } 
    } 

現在要將此屬性掛鉤到TreeView,您需要在TreeView的資源中應用以下樣式(或根據需要在Visual樹中進一步應用)

<Style TargetType="{x:Type TreeViewItem}"> 
    <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" /> 
</Style> 

注意:您也可以使用類似的技術來連接IsSelected屬性 - 也非常有用!

+0

實際上,在棱鏡看起來像這樣: ... public property IsExpanded:Boolean;通知; ... 無需用Prism手動引發PropertyChanged事件。 – 2009-12-07 07:38:04

+0

感謝提示(不是棱鏡用戶!) – kiwipom 2009-12-07 08:02:32

+2

這是不正確的。您仍然需要引發PropertyChanged通知器。棱鏡不會改變WPF的行爲。 – 2009-12-07 19:06:27