У меня есть два вида, сидящих рядом друг с другом. Они поставляются одним и тем же ItemsSource.Включите один вид сетки и отключите другой, когда у них один и тот же ItemSource
Два вида почти одинаковы, кроме заголовка. Я хочу отобразить одно из них по условию. Условие - ItemSource имеет свойство type
. Когда type
равно left
, мы покажем данные в левом представлении. Когда type
равно right
, мы покажем данные в правом представлении.
Теперь они оба отображают данные, поскольку они имеют тот же самый ItemSource. Итак, как вызвать View?
<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.
Я добавил свойство 'Type' в ViewModel. Но это невозможно. Не знаете почему? 'public string Тип { get {вернуть this.type; } комплект { если (это.type! = Значение) { это.type = значение; this.OnPropertyChanged («Тип»); } } } ' – Bigeyes
Что значит быть« не может быть достигнуто »? В любом случае вам понадобится конвертер, потому что «left» и «right» недействительны booleans. – Haukinger
У меня есть конвертер. Я имел в виду, что логика может быть неправильной. «Результат» не получен, вы просто свяжете «result.type» в первую очередь. Он всегда равен нулю. – Bigeyes