2013-12-11 111 views
-1

我遇到了在MVVM PRISM中绑定列标题和值到数据网格的问题。Datagrid列标题和值绑定

我有类信息搜索结果有两个属性:

  • COLUMNNAMES --->那些将适用于头
  • ColumnValues --->那些将适用于特定的头文件作为它们的值。

    public class SearchResult { public List 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>