0
2つのビューを並べて表示します。同じItemsSourceによって提供されます。1つのグリッドビューを有効にし、同じItemsSourceを持つ他のグリッドビューを無効にします
2つのビューは、ヘッダーを除いてほぼ同じです。私が望むのは、条件の1つを表示することです。条件はItemsSourceにプロパティtype
があることです。 type
がleft
に等しいときは、左側のビューにデータを表示します。 type
がright
に等しいとき、私たちは右のビューでデータを表示します。
ここでは、両方とも同じ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
を結合について
ViewModelに「Type」プロパティを追加しました。しかし、それは到達することはできません。理由は分かりませんか? 'public string Type { get {return this.type; } セット {IF(this.type =値!) {this.type =値。 this.OnPropertyChanged( "Type"); } } } – Bigeyes
「到達できない」とはどういう意味ですか?とにかく "左"と "右"は有効なブール値ではないので、あなたはコンバータを必要とします。 – Haukinger
私はコンバータを持っています。私は論理が間違っているかもしれないことを意味した。 'result'は取得されていません。最初に' result.type'をバインドするだけです。常にnullです。 – Bigeyes