2016-06-01 2 views
0

я в настоящее время возникают проблемы с доступом к ListView в DataTemplate, каждая строка имеет свой уникальный список, например, Сэм имеет определенные документы, которые нужны нажмите событий, я просто не могу доступа имя элемента управления.заполнение ListView в DataTemplate

В результате исследований я обнаружил команду и с помощью визуального помощника дерева, однако не может получить доступ к списку, чтобы связать данные с ItemSource.

<DataGrid Name="dgUsers"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Client" Binding="{Binding name1}"/> 
      <DataGridTextColumn Header="Land Line" Binding="{Binding landline}"/>   
     </DataGrid.Columns> 
     <DataGrid.RowDetailsTemplate> 
      <DataTemplate x:Name="datatemplate"> 
       <DockPanel Background="GhostWhite"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="200"/> 
          <ColumnDefinition Width="200"/> 
          <ColumnDefinition/> 
         </Grid.ColumnDefinitions> 

         <ListView x:Name="lvPipeline" Margin="10,82,10,156" Grid.Column="2" > 
          <ListView.View> 
           <GridView> 

ответ

0

В xaml вы можете получить доступ к именованным элементам управления в шаблоне, подобном вашему, только в шаблоне, а не снаружи. Не уверен, если я понимаю общий контекст ли приложение всю дорогу, но я хотел бы использовать MVVM и создать модель и ViewModel для объектов, как Сэм и поставить documentlist Сэма в ViewModel и привязать его к ListBox в DataTemplate.

Мой подход был бы что-то вроде этого:

public class UserViewModel 
{ 
    public string Name {get;set} 
    public ObservableCollection<string> Documents {get;set;} 
    public string SelectedDocument {get;set} 

} 



    <DataGrid Name="dgUsers" ItemsSource="{Binding Users}"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Client" Binding="{Binding Name}"/> 
       <!-- <DataGridTextColumn Header="Land Line" Binding="{Binding LandLine}"/> -->  
      </DataGrid.Columns> 
      <DataGrid.RowDetailsTemplate> 
       <DataTemplate x:Name="datatemplate"> 
        <DockPanel Background="GhostWhite"> 
         <Grid> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="200"/> 
           <ColumnDefinition Width="200"/> 
           <ColumnDefinition/> 
          </Grid.ColumnDefinitions> 

          <ListView ItemsSource="{Binding Documents}" SelectedItem="{Binding SelectedDocument}" Margin="10,82,10,156" Grid.Column="2" > 
           <ListView.View> 
            <GridView> 

После этого вы можете использовать свойство SelectedDocument и привязать его к, например, просмотрщик документов.

+0

спасибо за ответ, как будет привязка к документам быть уникальным для каждого пользователя? – Bish25

+0

спасибо за ответ, Как привязка к документам будет уникальной для каждого пользователя? – Bish25

+0

Вы должны привязать документы к пользователю. Вы также можете создать класс doc для получения уникального идентификатора для каждого документа (из базы данных) –