2013-12-11 82 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>