是否可以将两个不同的数据绑定到同一个DataGrid列。假设我拥有属性p1的A类,并且拥有属性p2的另一个B类。是否可以将p1和p2绑定到同一个datagrid列?DataGrid列的多个绑定
0
A
回答
1
事情是这样的:
<StackPanel>
<TextBlock Text="{Binding ClassAProperty}"/>
<TextBlock Text="{Binding ClassBProperty}"/>
</StackPanel>
将工作,只要类没有具有相同名称的任何属性。但是这是一种丑陋的黑客行为,并且很好运在这种方法将产生的所有虚假绑定错误中发现真正的绑定错误。
每种类型的属性到列的映射必须在某个地方居住,但它不必住在XAML中,这不是我放置它的地方。我会在我的视图模型中做到这一点。假设我还没有为我的ClassA和ClassB的对象视图模型类(和我不想要创建它们),我想实现这样的事情:
public class DataGridHelper
{
public Wrapper(object o)
{
ClassA a = o as ClassA;
if (a != null)
{
Column1 = a.Property1;
Column2 = a.Property2;
...
}
ClassB b = o as ClassA;
if (b != null)
{
Column1 = b.Property1;
Column2 = b.Property2;
...
}
public object Column1 { get; private set; }
public object Column2 { get; private set; }
}
...然后将DataGrid
的列绑定到DataGridHelper
对象的集合。
如果我没有有ClassAViewModel
和ClassBViewModel
班,我只希望实现两个Column1
,Column2
等特性。如果我需要支持双向绑定和验证,那就是要走的路。
2
您可以使用DataGridTemplate列包含两个不同的控件,每个控件绑定到不同的属性。
1
最简单的方法可能是MultiBinding。这里是关于如何使用MultiBinding的一个simple example(它利用了我喜欢的StringFormat属性)。
相关问题
- 1. 绑定多个列表DataGrid中
- 2. DataGrid绑定列
- 3. 的DataGrid的Silverlight列绑定
- 4. DataGrid视图中的多个绑定源
- 5. DataGrid - 绑定双列到列
- 6. 空的DataGrid绑定列表
- 7. Silverlight的DataGrid和绑定列
- 8. DataGrid列自定义绑定
- 9. WPF - 绑定两个列表中的DataGrid
- 10. DataGrid ColumnHeaderStyle TextBlock多重绑定
- 11. 绑定WPF DataGrid列到另一个
- 12. Silverlight datagrid重新绑定整个列
- 13. WPF DataGrid列上绑定
- 14. DataGrid中绑定列替换()
- 15. 绑定列表到DataGrid
- 16. DataGrid模板列绑定
- 17. 绑定DataGrid列标题
- 18. 绑定列表到DataGrid Silverlight
- 19. DataGrid - 绑定到MVVM列表的列表
- 20. 如何将DataGrid中的列绑定到数据源中的多个列?
- 21. 绑定DataGrid的列标题的DataContext
- 22. WPF DataGrid ClipboardBinding可能的多重绑定?
- 23. dependencyproperty.unsetvalue与DataGrid多重绑定的异常
- 24. 将DataGrid列绑定到列表
- 25. WPF绑定DataGrid
- 26. MVVM datagrid绑定
- 27. WPF DataGrid绑定
- 28. WPF DataGrid绑定
- 29. 绑定Selecteditems Datagrid
- 30. WPF Datagrid绑定自定义列标题
是的StackPanel是凌乱。创建一个DataGridHelper看起来很顺利。谢谢! – Reflux 2010-08-13 21:13:16