C# 到DataGrid列的多个绑定

C# 到DataGrid列的多个绑定,c#,wpf,C#,Wpf,是否可以将两个不同的数据绑定到同一DataGrid列。假设我有一个属性为p1的类A,另一个属性为p2的类B。是否可以将p1和p2绑定到同一datagrid列?您可以使用DataGridTemplate列,其中包含两个不同的控件,每个控件都绑定到不同的属性。您可以使用DataGridTemplate列,其中包含两个不同的控件,每个都绑定到不同的属性。最简单的方法可能是多重绑定。下面介绍如何使用多重绑定(它利用了我喜欢的StringFormat属性)。最简单的方法可能是多重绑定。下面是如何使用多重绑

是否可以将两个不同的数据绑定到同一DataGrid列。假设我有一个属性为p1的类A,另一个属性为p2的类B。是否可以将p1和p2绑定到同一datagrid列?

您可以使用DataGridTemplate列,其中包含两个不同的控件,每个控件都绑定到不同的属性。

您可以使用DataGridTemplate列,其中包含两个不同的控件,每个都绑定到不同的属性。

最简单的方法可能是多重绑定。下面介绍如何使用多重绑定(它利用了我喜欢的StringFormat属性)。

最简单的方法可能是多重绑定。下面是如何使用多重绑定的示例(它利用了我喜欢的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看起来是一个不错的选择。谢谢