Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有一种简单的方法将数据网格放入组合框中?_C#_Wpf_Xaml - Fatal编程技术网

C# 有没有一种简单的方法将数据网格放入组合框中?

C# 有没有一种简单的方法将数据网格放入组合框中?,c#,wpf,xaml,C#,Wpf,Xaml,有没有一个简单的例子说明如何让组合框显示数据网格而不是列表?我一直在尝试SO和google,但不断得到显示如何在数据网格中放置组合框的结果。这肯定是可能的。这是WPF的幂 链接解释了如何做。这肯定是可能的。这是WPF的幂 link解释了如何做。要回答第一个问题,“有没有一个简单的例子说明如何让组合框显示数据网格而不是列表?”非常简单:-答案是否定的 也就是说,有两种不同的方法可以完成类似于DataGrid(即带列的列表)的任务 一个非常简单的示例,伪造一些看起来像datagrid的东西,可能会改

有没有一个简单的例子说明如何让组合框显示数据网格而不是列表?我一直在尝试SO和google,但不断得到显示如何在数据网格中放置组合框的结果。

这肯定是可能的。这是WPF的幂


链接解释了如何做。

这肯定是可能的。这是WPF的幂


link解释了如何做。

要回答第一个问题,“有没有一个简单的例子说明如何让组合框显示数据网格而不是列表?”非常简单:-答案是否定的

也就是说,有两种不同的方法可以完成类似于DataGrid(即带列的列表)的任务

一个非常简单的示例,伪造一些看起来像datagrid的东西,可能会改变combobox的ItemTemplate

<ComboBox x:Name="cb" ItemsSource="{Binding Persons}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50" />
                    <ColumnDefinition Width="50" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding Name}" />
                <TextBlock Grid.Column="1" Text="{Binding Age}" />
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>


您还可以使用(和)来同步所有项目的列宽,从而形成动态和对齐的布局。

要回答您的第一个问题,“是否有一个简单的示例说明如何让组合框显示数据网格而不是列表?”非常简单:-答案是否

也就是说,有两种不同的方法可以完成类似于DataGrid(即带列的列表)的任务

一个非常简单的示例,伪造一些看起来像datagrid的东西,可能会改变combobox的ItemTemplate

<ComboBox x:Name="cb" ItemsSource="{Binding Persons}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50" />
                    <ColumnDefinition Width="50" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding Name}" />
                <TextBlock Grid.Column="1" Text="{Binding Age}" />
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>


您还可以使用(和)来同步所有项目的列宽,从而形成一个动态的、对齐的布局。

正如我所说,使用组合框来实现这一点对我来说很奇怪。也许你可以这样做:

 <ToggleButton x:Name="Toggle" Width="200" Height="30" HorizontalAlignment="Center" VerticalAlignment="Top" />
    <Popup IsOpen="{Binding ElementName=Toggle, Path=IsChecked}" PlacementTarget="{Binding ElementName=Toggle}" Placement="Bottom" Width="{Binding ElementName=Toggle, Path=Width}">
        <DataGrid>
            <DataGrid.Columns>
                <DataGridTextColumn Header="Test1" />
                <DataGridTextColumn Header="Test2" />
            </DataGrid.Columns>
        </DataGrid>
    </Popup>


当然,这只是一个例子,它缺少一些功能,比如自动弹出隐藏。但你明白了。

正如我所说,我觉得用组合框来做这个很奇怪。也许你可以这样做:

 <ToggleButton x:Name="Toggle" Width="200" Height="30" HorizontalAlignment="Center" VerticalAlignment="Top" />
    <Popup IsOpen="{Binding ElementName=Toggle, Path=IsChecked}" PlacementTarget="{Binding ElementName=Toggle}" Placement="Bottom" Width="{Binding ElementName=Toggle, Path=Width}">
        <DataGrid>
            <DataGrid.Columns>
                <DataGridTextColumn Header="Test1" />
                <DataGridTextColumn Header="Test2" />
            </DataGrid.Columns>
        </DataGrid>
    </Popup>


当然,这只是一个例子,它缺少一些功能,比如自动弹出隐藏。但是你明白了。

你是说让一个组合框显示为datagrid中的一个字段吗。。?如果是这样,这将是在模板级别。不确定您的问题是否是打字错误。您希望通过这样做实现什么?为什么希望在组合框中有一个数据网格?因为这听起来有点奇怪。所以我的基本成就是拥有一个包含选项列表的组合框,并且额外的ComColumn将用于提供有关该选项的信息。你是说让组合框显示为datagrid中的一个字段吗。。?如果是这样,这将是在模板级别。不确定您的问题是否是打字错误。您希望通过这样做实现什么?为什么希望在组合框中有一个数据网格?因为这听起来有点奇怪。所以我的基本成就是拥有一个包含选项列表的组合框,额外的ComColumn将用于提供有关该选项的信息。这一点的最大优势也是,您不打算在模板中使用datagrid,这将稍微简化绑定,您不打算在模板中使用datagrid,这将简化绑定。请避免在非现场链接,除非您提供摘要,以便您的答案能够独立存在,或者如果是针对给定技术的官方文档。链接失效…除非您提供摘要,以便您的答案能够独立存在,或者如果是针对给定技术的官方文档,请避免在场外链接。链接会消失…数据网格无论如何都是多余的,因为它通常不仅用于显示数据,还用于编辑和添加。这很有效,但我想知道是否有可能将两列分开一行?有没有办法给这些列一个标题?如果我要选择一行,我只能在组合框中的第一列不活动时显示它。DataGrid无论如何都会有些过分,因为它通常不仅用于显示数据,还用于编辑和添加。这很有效,但我想知道是否可以用一行分隔两列?有没有办法给这些列一个标题?如果我要选择一行,我只能在组合框中的第一列不活动时显示它。