2013-06-18 3 views
0

WPF 애플리케이션/MVVM 패턴이 있으며 콤보 박스와 트 리뷰 컨트롤이 있습니다. 내가하고 싶었던 것은 내가 콤보 박스에서 항목을 선택할 때만 treeview 컨트롤을 보여 주려고했다.콤보 박스에서 항목 선택 전용 트 리뷰보기

예를 들어 : 나는 재산권 선택한 항목에 일치하는 트랜잭션 이름이 표시됩니다

 private string _selectedTransactionWsName; 
     public string SelectedTransactionName 
     { 
      set 
      { 
       if (_selectedTransactionWsName == value) return; 
       this._selectedTransactionWsName = value; 

       InitializaMessageElement(); 
      } 
      get 
      { 
       return this._selectedTransactionWsName; 
      } 

     } 

내 InitializaMessageElement 방법 SelectedTransactionName라고합니다. 하지만 지금은 콤보 상자에서 선택을 할 때만 페이지로드시 트리보기를 표시하고 싶지 않습니다. 페이지로드시 내 창에 콤보 상자 만 표시됩니다.

감사

답변

1

당신의 TreeViewVisibility 속성을 바인딩하는 계산 된 부울 속성, 예를 들면 포함 할 수 있습니다 귀하의 뷰 모델 : 그런 다음 SelectedTransactionName의 세터의 속성 변경을 통지 할 수

public bool IsTransactionNameSelected 
{ 
    get 
    { 
     return !string.IsNullOrEmpty(_selectedTransactionWsName); 
    } 
} 

을 :

set 
{ 
    if (_selectedTransactionWsName == value) return; 
    this._selectedTransactionWsName = value; 
    InitializaMessageElement(); 

    this.NotifyOfPropertyChanged(() => this.IsTransactionNameSelected); 
} 

그런 다음 TreeViewVisibility 속성은 제공된 것을 사용합니다 BooleanToVisibilityConverter :

<TreeView 
    Visibility="{Binding IsTransactionNameSelected, 
       Converter={StaticResource BooleanToVisibilityConverter}" ... 
관련 문제