2013-12-11 2 views
-1

У меня возникла проблема с привязкой заголовков столбцов и значений к сетке данных в MVVM PRISM.Связывание столбцов и значений столбцов Datagrid

Я имею класс SearchResult, который имеет два свойства:

  • ColumnNames ---> те будут применяться к заголовкам
  • ColumnValues ​​---> те будут применяться к конкретным заголовкам, как их значения.

    общественный класс SearchResult { Публичный список ColumnNames;

    public List<object> ColumnValues; 
    
    public string ColumnName { get; set; } 
    public object ColumnValue { get; set; } 
    
    public SearchResult() 
    { 
        this.ColumnNames = new List<string>(); 
        this.ColumnValues = new List<object>(); 
    } 
    
    public void AddColumnAttributes(string columnName, object columnValue) 
    { 
        this.ColumnNames.Add(columnName); 
        this.ColumnValues.Add(columnValue); 
        this.ColumnName = columnName; 
        this.ColumnValue = columnValue; 
    } 
    

    }

эти свойства представляют собой списки, которые населяли динамически через C# код.

И мне нужно привязать их к значениям столбцов и столбцов в XAML.

Я уже создал ObservableCollection Результат, который является источником моего gridview, но все еще не связывает заголовки и значения.

public ObservableCollection<SearchResult> Result 
    { 
     get { return this.searchResult; } 
     set 
     { 
      this.searchResult = value; 
      this.NotifyPropertyChanged("SearchResult"); 
     } 
    } 

И XAML:

<DataGrid ItemsSource="{Binding SearchResult}" Width="350"> 
      <DataGrid.Columns> 
       <DataGridTemplateColumn> 
        <DataGridTemplateColumn.Header> 
         <TextBlock Text="{Binding ColumnName, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"></TextBlock> 
        </DataGridTemplateColumn.Header> 
       </DataGridTemplateColumn> 
      </DataGrid.Columns> 
     </DataGrid> 

Я признателен за любую помощь в этом !!!

+0

Просьбы представить соответствующий нерабочий код. –

+0

Можете ли вы изменить свой исходный вопрос и добавить там код, а не комментарии? –

ответ

0

Я толстый ваш код должен быть такой ..

<DataGrid ItemsSource="{Binding SearchResult, ElementName=PageTitle}" Width="350"> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn> 
       <DataGridTemplateColumn.Header> 
        <TextBlock Text="{Binding ColumnNames/ColumnName, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"></TextBlock> 
       </DataGridTemplateColumn.Header> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
</DataGrid> 
Смежные вопросы