c# – WPF MVVM绑定字典>到datagrid
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – WPF MVVM绑定字典>到datagrid,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2456字,纯文字阅读大概需要4分钟。
内容图文
![c# – WPF MVVM绑定字典>到datagrid](/upload/InfoBanner/zyjiaocheng/788/74d85a9b6794493c8919a01f063df601.jpg)
我无法绑定我的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; }
}
我已经填充了虚拟数据并作为我的viewmodel的公共属性公开:
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; }
}
我试图将合作伙伴字典绑定到我的数据网格.每个字典条目的键(例如公司/操作符/兴趣/类型)应构成我的数据网格的标题,相应的值填充列.像这样:
Company | Operator | Interest | Type
company1 false 40% type1
company2 true 60% type2
我怎样才能做到这一点?我一直在寻找this question,但数据是我想要的另一种方式.我希望我的密钥作为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 =”{绑定Asset.Partners [公司]}“但是没有用.
任何帮助赞赏.
解决方法:
我个人会创建一个对象模型来表示您的数据,并绑定到这些对象的集合.
public class MyObject
{
public string Company { get; set; }
public string Operator { get; set; }
public string Interest { get; set; }
public string Type { get; set; }
}
和
public MainViewModel()
{
var partners = new ObservableCollection<MyObject>()
{
new MyObject("company1", "false", "40%", "type1"),
new MyObject("company2", "true", "60%", "type2")
};
...
}
我不认为你使用普通的DataGrid可以得到什么,因为它读取的内容为“对于集合中的每一行,创建一个DataRow并将DataContext分配给该行”.在您的情况下,每行代表整个数据网格,因此这对您不起作用.
内容总结
以上是互联网集市为您收集整理的c# – WPF MVVM绑定字典>到datagrid全部内容,希望文章能够帮你解决c# – WPF MVVM绑定字典>到datagrid所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。