我很难将我的Dictionary<string, List<string>>
正确地绑定到WPF数据网格上。
这是我的数据对象:
public class Result
{
public Result(string type, string name, Dictionary<string, List<string>> partners)
{
Type = type;
Name = name;
Partners = partners;
}
public string Type { get; set; }
public string Name { get; set; }
public Dictionary<string, List<string>> Partners { get; set; }
}
我已经填充了虚假数据并将其公开为我的视图模型的公共属性:
```
我已经填充了虚假数据并将其公开为我的视图模型的公共属性:
```public class MainViewModel
{
public MainViewModel()
{
var partners = new Dictionary<string, List<string>>
{
{"Company", new List<string> {"company1", "company2"}},
{"Operator", new List<string> {"false", "true"}},
{"Interest", new List<string> {"40%", "60%"}},
{"Type", new List<string> {"type1", "type2"}}
};
Asset = new Result("TestType", "TestName", partners);
}
public Result Asset { get; set; }
}
我正在尝试将Partners
字典绑定到我的数据表格。每个字典条目的Key
(例如,公司/运营商/利益/类型)应构成我的数据表格的标题,并使用相应的值填充列。像这样:
Company | Operator | Interest | Type
company1 false 40% type1
company2 true 60% type2
我该如何实现这个目标?我看到了这个问题,但数据的格式与我想要的相反。我希望我的键作为datagrid表头(我不介意硬编码表头,因为我认为表头属性不能使用数据绑定)。这是我的XAML代码,itemsource已正确绑定,但我不知道如何以所需的格式获取数据:
<DataGrid x:Name="dg" ItemsSource="{Binding Asset.Partners}" AutoGenerateColumns="false">
<DataGrid.Columns>
<DataGridTextColumn Header="Company" Binding="{Binding ?}"/>
<DataGridTextColumn Header="Operator" Binding="{Binding ?}"/>
<DataGridTextColumn Header="Interest" Binding="{Binding ?}"/>
<DataGridTextColumn Header="Type" Binding="{Binding ?}"/>
</DataGrid.Columns>
</DataGrid>
如果我在第一列使用
Binding="{Binding Value[0]}
,那么我的列中会得到一个“行”值,但我希望反过来。我也尝试过使用Binding="{Binding Asset.Partners[Company]}"
,但没有成功。非常感谢您的帮助。