2016-08-11 2 views
0

2つのビューを並べて表示します。同じItemsSourceによって提供されます。1つのグリッドビューを有効にし、同じItemsSourceを持つ他のグリッドビューを無効にします

2つのビューは、ヘッダーを除いてほぼ同じです。私が望むのは、条件の1つを表示することです。条件はItemsSourceにプロパティtypeがあることです。 typeleftに等しいときは、左側のビューにデータを表示します。 typerightに等しいとき、私たちは右のビューでデータを表示します。

ここでは、両方とも同じItemsSourceを持つデータを表示します。ビューをトリガーする方法は?

<StackPanel Orientation="Vertical" Grid.Column="0" Margin="0,5,5,0"> 
        <TextBlock Text="Left" HorizontalAlignment="Center"></TextBlock> 
        <telerik:RadGridView 

          ItemsSource="{Binding Result}"> 
         <telerik:RadGridView.Columns> 
          <telerik:GridViewDataColumn Width="70" Header="User" DataMemberBinding="{Binding User,Mode=TwoWay}" HeaderTextAlignment="Center" TextAlignment="Center"></telerik:GridViewDataColumn> 
          <telerik:GridViewDataColumn Width="400" Header="Note" DataMemberBinding="{Binding Note,Mode=TwoWay}" HeaderTextAlignment="Center" TextAlignment="Center"></telerik:GridViewDataColumn> 
         </telerik:RadGridView.Columns> 

        </telerik:RadGridView> 

       </StackPanel> 
       <StackPanel Orientation="Vertical" Grid.Column="1" Margin="5,5,0,0"> 
        <TextBlock Text="Right" HorizontalAlignment="Center"></TextBlock> 
        <telerik:RadGridView 

          ItemsSource="{Binding Result}"> 
         <telerik:RadGridView.Columns> 
          <telerik:GridViewDataColumn Width="70" Header="User" DataMemberBinding="{Binding User}" HeaderTextAlignment="Center" TextAlignment="Center"></telerik:GridViewDataColumn> 
          <telerik:GridViewDataColumn Width="400" Header="Note" DataMemberBinding="{Binding Note}" HeaderTextAlignment="Center" TextAlignment="Center"></telerik:GridViewDataColumn> 
         </telerik:RadGridView.Columns> 

        </telerik:RadGridView> 

       </StackPanel> 

注意:MVVMパターンを使用します。グリッドビューIsEnabledプロパティにResult.typeを結合について

答えて

0

どのように?

変換パラメータに種類を比較し、両者が一致する場合、trueを返しコンバータを使用してください。

+0

ViewModelに「Type」プロパティを追加しました。しかし、それは到達することはできません。理由は分かりませんか? 'public string Type { get {return this.type; } セット {IF(this.type =値!) {this.type =値。 this.OnPropertyChanged( "Type"); } } } – Bigeyes

+0

「到達できない」とはどういう意味ですか?とにかく "左"と "右"は有効なブール値ではないので、あなたはコンバータを必要とします。 – Haukinger

+0

私はコンバータを持っています。私は論理が間違っているかもしれないことを意味した。 'result'は取得されていません。最初に' result.type'をバインドするだけです。常にnullです。 – Bigeyes

関連する問題