2016-08-11 3 views
0

У меня есть два вида, сидящих рядом друг с другом. Они поставляются одним и тем же 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.

ответ

0

Как насчет привязки Result.type к просмотру вашей сетки? IsEnabled property?

Используйте преобразователь, который сравнивает тип с параметром преобразователя, и если они совпадают, верните true.

+0

Я добавил свойство 'Type' в ViewModel. Но это невозможно. Не знаете почему? 'public string Тип { get {вернуть this.type; } комплект { если (это.type! = Значение) { это.type = значение; this.OnPropertyChanged («Тип»); } } } ' – Bigeyes

+0

Что значит быть« не может быть достигнуто »? В любом случае вам понадобится конвертер, потому что «left» и «right» недействительны booleans. – Haukinger

+0

У меня есть конвертер. Я имел в виду, что логика может быть неправильной. «Результат» не получен, вы просто свяжете «result.type» в первую очередь. Он всегда равен нулю. – Bigeyes

Смежные вопросы