最简单的情况:数据网格有5列,2行,不关心4个第一列,在第5列:
>第1行:它是一个文本框
>第2行:它是一个组合框.
谢谢!
解决方法 您可以使用DataGrIDTemplateColumn结合几个触发器来实现此功能.这是一个演示应用程序,它将DataGrID绑定到(字符串)控件类型列表.第一列只显示控件类型字符串,第二列作用于相同的信息以显示相应的Control.您可能能够使xaml更简洁,但这是它的主旨:
XAML:
<Window x:Class="DataGrIDWithMultipleTypesPerColumn.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" title="MainWindow" Height="350" WIDth="525"><GrID> <DataGrID ItemsSource="{Binding ControlTypes}" autoGenerateColumns="False"> <DataGrID.Columns> <DataGrIDTextColumn header="Control Type" Binding="{Binding}"/> <DataGrIDTemplateColumn header="Actual Control"> <DataGrIDTemplateColumn.CellTemplate> <DataTemplate> <ContentControl> <ContentControl.Style> <Style targettype="ContentControl"> <Style.Triggers> <DataTrigger Binding="{Binding}" Value="TextBox"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <TextBox Text="Default Text"/> </DataTemplate> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding}" Value="CheckBox"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <CheckBox Content="Check Box"/> </DataTemplate> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding}" Value="button"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <button Content="button"/> </DataTemplate> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> </DataTemplate> </DataGrIDTemplateColumn.CellTemplate> </DataGrIDTemplateColumn> </DataGrID.Columns> </DataGrID></GrID>
代码隐藏和视图模型:
namespace DataGrIDWithMultipleTypesPerColumn{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new viewmodel(); } } public class viewmodel { public ObservableCollection<string> ControlTypes { get; private set; } public viewmodel() { ControlTypes = new ObservableCollection<string>() { "button","TextBox","CheckBox" }; } }}总结
以上是内存溢出为你收集整理的c# – Datagrid列可以在不同的行中包含不同类型的控件全部内容,希望文章能够帮你解决c# – Datagrid列可以在不同的行中包含不同类型的控件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)