我遇到了如何以最佳方式绑定数据网格的问题。
问题是我想使用两个itemSources。 我有一个包含很多事件的列表,每个事件都有一个bug列表。 我想要做的是将半个gridview行与事件中的一些字段绑定,并将网格的一半与事件所持有的相应错误绑定。
我怎样才能以最好的方式做到这一点?
我可以访问componentOne数据网格,但是如果普通网格工作则一切都很好。
但我确实希望有一种排序能力。
谢谢
答案 0 :(得分:0)
听起来你只想确保没有AutoGenerateColumns="True"
。
<sdk:DataGrid AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn
Header="ItemSource1Property1Name"
Width="SizeToHeader"
Binding="{Binding ItemSource1.Property1}"
FontSize="20" />
<sdk:DataGridTextColumn
Header="ItemSource1Property2Name"
Width="SizeToHeader"
Binding="{Binding ItemSource1.Property2}"
FontSize="20" />
<sdk:DataGridTextColumn
Header="ItemSource2Property1Name"
Width="SizeToCells"
Binding="{Binding ItemSource2.Property1}"
FontSize="20" />
</sdk:DataGrid.Columns>
.
.
.
Rest of Code
.
.
.
</sdk:DataGrid>
修改强>
如果您选择为商品来源使用包装,那么您的代码中会有类似的内容:
public class ItemWrapper
{
ObservableCollection<ItemSource1Type> ItemSource1 {get;set;}
ObservableCollection<ItemSource2Type> ItemSource2 {get;set;}
}
然后在您的视图模型或代码后面(您想要设置要绑定的属性):
public class ViewModel //This may just end up being your code behind depending on how you have your entire SL project set up.
{
ItemWrapper ItemWrapper { get; set; } //set the two properties either in the constructor or in whatever code initializes ViewModel.
}
在你的xaml中:
<sdk:DataGrid AutoGenerateColumns="False"
ItemSource="{Binding ItemWrapper}"
DataContext="{Binding}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn
Header="ItemSource1Property1Name"
Width="SizeToHeader"
Binding="{Binding ItemSource1.Property1}"
FontSize="20" />
答案 1 :(得分:0)
我同意Kavet的想法,但他的解决方案远离现实。 根据{{3}}
ItemSourse必须实现IEnumerable接口。
这意味着你的ItemWrapper根本不起作用。
你试过这个吗?