【问题标题】:DataGrid: How do I programmatically select a ComboBox item?DataGrid:如何以编程方式选择 ComboBox 项?
【发布时间】:2023-03-06 17:03:01
【问题描述】:

有问题的组合框位于 DataGrid 的列中,并且定义如下:

<DataGridTemplateColumn Header=" Right Column ">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Caliber, RelativeSource={RelativeSource AncestorType=Window}}" DisplayMemberPath="Thicknesss" SelectedItem="{Binding Thickness, UpdateSourceTrigger=PropertyChanged" SelectionChanged="ComboBox_SelectionChanged">
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

TIA

【问题讨论】:

  • 公开列表 Calibre { get;放; }
  • 该列处理钢厚度。为了编程的多样性和差异化,在这个我使用了“口径”这个词,
  • 您可以在此处可视化我的完整 DataGrid (patriot.net/~ramon/misc/Disable-Inside-Combo-Inside-Column.png) 我的目标是 (a) 预选一个 ComboBox 项和 (b) 动态禁用一些 ComboBox 项。

标签: c# wpf datagrid combobox


【解决方案1】:

您可能正在寻找可以在 ComboBox 的样式上设置的 DataTriggers,并根据条件启用或禁用 ComboBox。

【讨论】:

    【解决方案2】:

    有问题的组合框位于 DataGrid 的列中,并且定义如下:

    <DataGridTemplateColumn Header=" Right Column ">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding Caliber, RelativeSource={RelativeSource AncestorType=Window}, Mode=TwoWay}" DisplayMemberPath="Thickness" SelectedItem="{Binding Thickness, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" >
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    

    链接

    http://social.technet.microsoft.com/wiki/contents/articles/19493.wpf-best-combobox-tutorial-ever.aspx#DataGridTemplateColumn_CellTemplate

    【讨论】:

    • 谢谢,Monika,但您的解决方案似乎适用于 WinForms。我使用 WPF。
    • 编辑了 wpf 的答案
    • 这如何回答 OP 的问题?
    • 微软WPF论坛有更完整的答案,这里:(goo.gl/px3SPT)
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2011-04-22
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 2013-12-25
    相关资源
    最近更新 更多