2015-02-16 3 views
0

У меня есть список пользователей на моем ViewModel, что я перехожу к следующему ListView:ListViewItem свойство доступа на ViewModel

    <ListView 
        Background="Azure" 
        x:Name="ContactList"     
        ItemsSource="{Binding Path=User}"     
        SelectedItem="{Binding SelectedUser, Mode=TwoWay}"> 
         <ListView.ItemTemplate> 
          <DataTemplate> 
           <Border Width="300" Height="Auto" BorderThickness="1"> 
            <StackPanel> 
             <TextBlock> 
            <Run Text="{Binding Name}" />        
            <Run Text="{Binding Age}" /> 
             </TextBlock> 
             <CheckBox Visibility="{???}"> 
              <TextBlock FlowDirection="LeftToRight"></TextBlock> 
             </CheckBox> 
            </StackPanel> 
           </Border>        
          </DataTemplate> 
         </ListView.ItemTemplate> 
        </ListView> 

Как вы можете видеть мой DataTemplate содержит checkbox. Я хотел бы, чтобы его видимость зависела от свойства bool, которое у меня есть на моей модели ViewModel. Как я могу получить доступ к этому свойству из списка ListView?

От взгляда вокруг здесь кажется, что есть способы доступа к родительскому элементу ListView. Я думаю, это сделало бы это для меня. Может кто-то указать мне в правильном направлении. Спасибо

ответ

0

Лучший способ сделать это - включить параметр видимости вместе с вашими пользовательскими данными. Предполагая, что ваша точка зрения модели видимость свойство называется CheckBoxVisibility, вы бы что-то вроде этого:

<ListView ItemsSource="{Binding}" ...> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      ... 
       <Run Text="{Binding Path=User.Name}" /> 
       <Run Text="{Binding Path=User.Age}" /> 
      ... 
      <CheckBox Visibility="{Binding Path=CheckBoxVisibility}"> 
      ... 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

В WPF вы можете использовать RelativeSource = RelativeAncestor связывания; однако это недоступно в приложениях Window Store/Windows Phone 8+.

+0

Спасибо! Я пойду так. – user2915962

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