将 ComboBoxColumn 绑定到 WPF DataGrid 中 DataGrid 的 ItemsSource 的集合

2023-12-20

请帮助我弄清楚如何在 WPF 的 DataGrid 中使用 ComboBoxColumn。 我正在尝试创建一个设备列表,其中每个设备在“日志”字段中都有动态状态列表。

<DataGrid AutoGenerateColumns="False" Margin="12,6,12,12" Name="dataGrid1" Grid.Row="1"  SelectionUnit="FullRow">
    <DataGrid.Columns>
            ...
         <DataGridComboBoxColumn Header="Log" 
                                 ItemsSource="{Binding log, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Device}}}"/>
    </DataGrid.Columns>
</DataGrid>

public partial class MainWindow : Window
{
    public ObservableCollection<Device> devices;
    ...
}

public MainWindow() 
{
    ...
    dataGrid1.ItemSource = devices;
}

public class Device : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
    public Device() {log = new ObservableCollection<string>();}
    ...
    private ObservableCollection<string> _log;
    public ObservableCollection<string> log { get { return _log; } 
                                              set { _log = value; OnPropertyChanged("log"); } }
}

您能否分享任何建议:如何在每个对象的数据网格列表“日志”的每个组合框中显示?


MSDN:DataGridComboboxColumns http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcomboboxcolumn.aspx says:

要填充下拉列表,首先设置 ItemsSource 属性 使用以下选项之一的组合框:

  • 静态资源。有关详细信息,请参阅静态资源标记扩展。
  • x:静态代码实体。有关详细信息,请参阅 x:静态标记扩展。
  • ComboBoxItem 类型的内联集合。

所以基本上只是绑定到数据对象的集合属性,最好使用DataGridTemplateColumn:

<DataGridTemplateColumn Header="Log">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
             <ComboBox ItemsSource="{Binding log}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

这种类型的列为您提供了更多模板工具的可能性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 ComboBoxColumn 绑定到 WPF DataGrid 中 DataGrid 的 ItemsSource 的集合 的相关文章

  • 访问 ControlTemplate 内的控件

    这是 xaml
  • Wpf ScrollViewer 滚动量

    是否可以更改 WPF ScrollViewer 滚动的量 我只是想知道是否可以更改滚动查看器 以便在使用鼠标滚轮或滚动查看器箭头时可以更改增量滚动量 简短的答案是 如果不编写一些自定义滚动代码 就无法做到这一点 但不要让这吓到你 这并不那么
  • 设置不可调整大小的 GridViewColumn

    我在 C WPF 应用程序中使用 ListView 和 GridViewColumn 对于某些列 我使用可见性管理器 this one https stackoverflow com a 9634769 6479770 但是 当第 1 列和
  • 使用 C# 从 UIElement 截取 WPF 屏幕截图 JPG

    我正在尝试从我的 WPF 应用程序的一部分创建 JPG 就像截图一样 只是个人的UIElements 我从这里开始 http www grumpydev com 2009 01 03 take wpf screenshots http ww
  • 打印 WPF 位图图像

    打印位图图像的最佳方法是什么 我有 System Drawing 背景 所以我正在考虑将其转换为位图 然后打印它 但我认为可能有更好的方法 Thanks 根据 Drew 的回答 最好测量并安排传递给 PrintVisual 方法的容器 这将
  • 快速变化的集合 MVVM WPF - 高 CPU 使用率和 UI 几乎冻结

    我正在开发一个带有数据网格的应用程序 它显示某些正在运行的 Windows 进程 在我的示例 Chrome 进程中 当选中复选框时 数据网格会加载进程 要求 显示每个进程的名称 内存使用情况 私有工作集 的 实时 信息 就像在 Window
  • 绑定到后面代码中的相对源

    在我的 UserControl 中 我的 XAML 中有以下代码
  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 如何让窗口最大化时所有控件按比例调整大小?

    当我单击最大化按钮时 窗口最大化 但控件未按比例调整大小 使控件相应调整大小的最佳方法是什么 我正在使用MVVM 这是我的代码
  • WPF 中的哪个表/网格控件?

    我希望显示表格数据 电视频道 但具有 DataGrid UniformGrid Table with FlowDocument 等选项 我不知道什么是最好的选择 主要问题是单元格的大小不均匀 因为它根据时间长度而变化 我也想在它们之间放置填
  • SwiftUI 显示带有绑定变量的工作表在首次显示时不起作用

    我试图在工作表中呈现一个带有 Binding String 变量的视图 该变量仅在 TextField 中显示 绑定该变量 在我的主 ContentView 中 我有一个字符串数组 我用 ForEach 循环遍历数组的索引来显示它 并显示一
  • 关闭时发送到托盘

    单击关闭按钮时如何将最小化的窗口发送到托盘 另外 如何在应用程序启动时在托盘中显示图标 WinForm 一种方法是在窗口的 F ormClosing 事件中设置 FormClosingEventArgs 的 Cancel 属性 然后最小化到
  • 如何从不同的进程关闭窗口

    我有一个 C 应用程序 我想指示它从不同的进程中很好地关闭 我还希望能够要求它打开主窗口 我有一个对其主窗口句柄的引用 我知道我可以使用远程处理或 WCF 等复杂的方案来做到这一点 问题是我可以使用更简单的机制 例如窗口消息 或 c 应用程
  • 来自程序集的资源作为流

    我在 C WPF 应用程序中有一个图像 其构建操作设置为 资源 它只是源目录中的一个文件 尚未通过拖放属性对话框添加到应用程序的资源集合中 我试图将它写成一个流 但尽管尝试了很多点 斜杠 命名空间和看似其他所有内容的变体 但我无法打开它 我
  • KeyEventArgs.Key 到 char

    有没有办法转换WPF的KeyEventArgs Key to Char 我尝试使用KeyInterop var x Char KeyInterop VirtualKeyFromKey e Key 对于数字和字母 它可以正常工作 但对于其他字
  • 将 WPF 属性数据绑定到变量

    我有一个 WPF 4 和 VB net 2010 中的项目 我想将媒体元素的音量属性绑定到另一个模块中的变量 请注意 变量的数据类型正确 因此无需转换 我该怎么做呢 首先 确保您的后台代码实现了 INotifyPropertyChanged
  • WPF 数据网格性能

    我正在使用 WPF Toolkit 数据网格 它目前滚动速度非常慢 该网格有 84 列和 805 行 包括 3 个固定列 标题是固定的 水平和垂直滚动都非常慢 虚拟化已打开 并且我已在 xaml 中显式启用列虚拟化和行虚拟化 是否有什么需要
  • 如何通过 tkinter 使用 虚拟事件

    我正在 Python 3 5 2 中使用 tkk Combobox 主题小部件 我希望在选择一个值时发生一个操作 在Python中docs https docs python org 3 library tkinter ttk html v
  • 整个工具提示的背景色

    有谁知道一个简单的 XAML 解决方案来更改整个背景ToolTip 我做了以下事情
  • JavaFX ComboBox - 显示文本但在选择时返回 ID

    我有一个包含机场的数据库表 每个机场都有一个名称和一个 ID 在 JavaFX 中我有一个表单 其中包含ComboBox 组合框需要显示所有机场名称 并且在提交表单时需要将机场的 ID 插入数据库 而不是其名称 但我并没有真正弄清楚解决方案

随机推荐