C# 到DataGrid列的多个绑定
是否可以将两个不同的数据绑定到同一DataGrid列。假设我有一个属性为p1的类A,另一个属性为p2的类B。是否可以将p1和p2绑定到同一datagrid列?您可以使用DataGridTemplate列,其中包含两个不同的控件,每个控件都绑定到不同的属性。您可以使用DataGridTemplate列,其中包含两个不同的控件,每个都绑定到不同的属性。最简单的方法可能是多重绑定。下面介绍如何使用多重绑定(它利用了我喜欢的StringFormat属性)。最简单的方法可能是多重绑定。下面是如何使用多重绑定的示例(它利用了我喜欢的StringFormat属性)。类似这样的内容:C# 到DataGrid列的多个绑定,c#,wpf,C#,Wpf,是否可以将两个不同的数据绑定到同一DataGrid列。假设我有一个属性为p1的类A,另一个属性为p2的类B。是否可以将p1和p2绑定到同一datagrid列?您可以使用DataGridTemplate列,其中包含两个不同的控件,每个控件都绑定到不同的属性。您可以使用DataGridTemplate列,其中包含两个不同的控件,每个都绑定到不同的属性。最简单的方法可能是多重绑定。下面介绍如何使用多重绑定(它利用了我喜欢的StringFormat属性)。最简单的方法可能是多重绑定。下面是如何使用多重绑
<StackPanel>
<TextBlock Text="{Binding ClassAProperty}"/>
<TextBlock Text="{Binding ClassBProperty}"/>
</StackPanel>
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
等属性。如果我需要支持双向绑定和验证,那么这就是最好的选择。类似这样的内容:
<StackPanel>
<TextBlock Text="{Binding ClassAProperty}"/>
<TextBlock Text="{Binding ClassBProperty}"/>
</StackPanel>
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
等属性。如果我需要支持双向绑定和验证,那就应该这样做。是的,StackPanel很混乱。创建DataGridHelper看起来是一个不错的选择。谢谢是的,面板很乱。创建DataGridHelper看起来是一个不错的选择。谢谢