【发布时间】:2013-12-11 08:28:20
【问题描述】:
我在将列标题和值绑定到 MVVM PRISM 中的数据网格时遇到问题。
我的类 SearchResult 有两个属性:
- ColumnNames ---> 这些将应用于标题
-
ColumnValues ---> 这些将应用于特定的标题作为它们的值。
公开课搜索结果 { 公共列表列名;
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 Result,它是我的 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>
我将不胜感激!
【问题讨论】:
-
请提供相关的非工作代码。
-
你能编辑你的原始问题并在那里而不是在 cmets 中添加代码内容吗?