这是DataGrid的XAML绑定的要求。
IList<T>
)
我的问题是如何在DataGridcolumnTemplate中使用这些列表(对于ex,ListBox等...) 有人可以解释一下吗?
答案 0 :(得分:0)
WPF DataGrid派生自ItemsControl,这意味着它只支持绑定到一个集合。这是我的理解。所以我认为在你的情况下,一个可能的解决方案是使用四个ListBox控件并排排列并制作样式,使它们看起来更像Grid,如果你想要相似的外观和感觉。
答案 1 :(得分:0)
如果您绑定到数据网格,最好有一个List而不是单独的List。
例如,
你有一个班级:
public class Product
{
public decimal guProductId { get; set; }
public string productCode { get; set; }
}
List<Product> Products;
可以绑定到数据网格,而不是单独列出GuProductID和ProductCodes,如下所示。
List<decimal> guProductIds;
List<string> productCodes;
将List绑定到datagrid很容易,而不是使用Individual Lists。
答案 2 :(得分:0)
如果您没有义务使用DataGrid,为什么不创建自己的用户控件来托管4个ListBox,并用每个List填充它们。像这样......
<UserControl x:Class="Listboxes.ListBoxes"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<DataTemplate x:Key="lbItemTemplate">
<Label Content="{Binding}"/>
</DataTemplate>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ListBox Grid.Column="0"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource lbItemTemplate}"/>
<ListBox Grid.Column="1"
ItemTemplate="{StaticResource lbItemTemplate}"/>
<ListBox Grid.Column="2"
ItemTemplate="{StaticResource lbItemTemplate}"/>
<ListBox Grid.Column="3"
ItemTemplate="{StaticResource lbItemTemplate}"/>
</Grid>
</UserControl>