首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

隐藏WPF中的列后,将清除DataGridTemplateColumn中的ComboBox

在WPF中,当隐藏DataGrid中的列时,会导致DataGridTemplateColumn中的ComboBox被清除。这是因为当列隐藏时,WPF会重新生成DataGrid的可视化树,从而导致ComboBox被重新创建。

为了解决这个问题,可以通过以下方法来隐藏列并保留ComboBox的值:

  1. 使用DataGridTemplateColumn的Visibility属性来控制列的可见性。将Visibility属性绑定到一个布尔值,通过改变布尔值来控制列的显示和隐藏。这样隐藏列时,ComboBox的值将被保留。
代码语言:xml
复制
<DataGridTemplateColumn Header="Column1" Visibility="{Binding IsColumnVisible}">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox SelectedItem="{Binding ComboBoxValue}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
  1. 在隐藏列之前,先保存ComboBox的值。可以在ViewModel中添加一个属性来保存ComboBox的值,并在隐藏列之前将ComboBox的SelectedValue赋值给该属性。
代码语言:csharp
复制
private object _comboBoxValue;
public object ComboBoxValue
{
    get { return _comboBoxValue; }
    set { _comboBoxValue = value; OnPropertyChanged(nameof(ComboBoxValue)); }
}

private bool _isColumnVisible;
public bool IsColumnVisible
{
    get { return _isColumnVisible; }
    set
    {
        if (!_isColumnVisible && value)
        {
            // 显示列时,将保存的ComboBox值赋值回去
            ComboBoxValue = SavedComboBoxValue;
        }
        else if (_isColumnVisible && !value)
        {
            // 隐藏列时,保存ComboBox的值
            SavedComboBoxValue = ComboBoxValue;
        }

        _isColumnVisible = value;
        OnPropertyChanged(nameof(IsColumnVisible));
    }
}

这样,在隐藏列后再次显示列时,ComboBox的值将被还原。

以上是解决隐藏WPF中列后清除DataGridTemplateColumn中ComboBox的方法。对于WPF开发,腾讯云提供了云桌面服务,可以帮助开发人员快速搭建开发环境,提高开发效率。详情请参考腾讯云云桌面产品介绍:腾讯云云桌面

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见标准用户界面元素。...一、DataGrid控件详解WPFDataGrid是一个非常强大和灵活控件,它可用于展示和编辑数据。...DataGrid还有许多其他属性和方法,可以根据需求进行使用。1.属性介绍WPFDataGrid控件常见属性如下:AutoGenerateColumns:是否自动生成,默认为true。...数据导入导出:DataGrid控件可以支持数据导入和导出,可以数据快速地导入到DataGrid中进行展示,也可以DataGrid数据导出到其他文件格式,方便数据共享和使用。...最后,StudentDialogViewModel传递给StudentDialog.xamlDataContext,即可实现一个简单增删改查功能WPF DataGrid。

1.2K00
  • 分组合并分组字符串如何操作?

    一、前言 前几天在Python最强王者交流群【IF】问了一个Pandas问题,如图所示。...下面是他原始数据: 序号 需求 处理人 1 优化 A 2 优化 B 3 运维 A 4 运维 C 5 需求 B 6 优化 C 7 运维 B 8 运维 C 9 需求 C 10 运维 C 11 需求 B...如果不去重,就不用unique,完美地解决粉丝问题! 后来他自己参考月神文章,拯救pandas计划(17)——对各分类含重复记录字符串列去重拼接,也写出来了,如图所示。...这篇文章主要盘点了一个pandas基础问题,文中针对该问题给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【IF】提问,感谢【月神】、【瑜亮老师】给出思路和代码解析,感谢【dcpeng】等人参与学习交流。

    3.3K10

    C# WPF数据绑定方法以及重写数据模板数据绑定

    写在前面 本文将会介绍WPF如何实现前后端数据绑定和在进行数据绑定时常用方法和类以及对于DataGrid、ListView这样控件重写数据模板控件如何进行数据绑定。...这时我们需要用到Command(命令),在本实例展示了按钮点击事件和键盘回车事件通过命令方式传到后台,但命令用法远不止这两种,可以在实际开发过程中跟据不同需求在进行学习和尝试。...3.数据模板重写:在本实例重写了DataGrid控件电话一和删除一数据模板,我们可以看到电话一重写为了TextBox删除一重写为了Button,表头也可以进行数据模板重写。...4.双向绑定:顾名思义绑定是双向,不仅仅是后台数据更新自动同步到前台,同时前台数据更新也会自动同步到后台。...以上就是本实例涉及一些要点,这些内容是做WPF和C#开发基本内容,希望他们能对你学习和工作起到一些帮助,如果对于本文某些用法写法说法有任何意见欢迎指正交流。谢谢。

    63240

    深入解析 DataGrid 过滤功能

    本文要解析不是标准DataGrid,而是Silverlight和WPF平台下C1DataGrid过滤功能。...比如日期类型或者布尔类型,可以选择适合条件过滤器,如下图所示: ? 高级过滤器 C1.Silverlight.DataGrid.Filters.dll中提供了很多高级过滤功能。...你可以高级过滤功能关闭,直接在XAML或代码为每一指定特殊过滤类型,下面演示如何为某一添加多值过滤功能: <c1:C1DataGrid Name="c1DataGrid1" ItemsSource...FilterLoading在每过滤器加载触发,你可以在这个事件设置自定义过滤器。FilterOpened在过滤器被打开之后触发,此时可以动态设置一些选项值。...,你可以实现你需要自定义过滤器,然后这个过滤器设置给特定

    2.9K70

    XAML常用控件2

    这节继续讲一些xaml常用控件。...wpf和WinFormXY轴定义是一样,都是从程序左上角作为原点,原点到右上角这一条线是X轴,原点到左下角这一条线是Y轴。...WarpPanel:这个布局跟StackPanel很相像,它是流式布局,同样是使用Orientation属性来控制子控件排列,但是比StackPanel更强大功能是当控件不能在一行或者一排开时,它会自另起一行或一...Header="我是自定义" Width="1*"> <DataTemplate...我们使用该控件时要先通过DataGrid.Columns来定义数量及类型,微软已经为我们定义了上述代码中所示文本,选择框,下拉框,超链接四个常用类型,根据业务需求,我们也可以通过DataGridTemplateColumn

    2.3K30

    WPF入门到放弃(七)| 常用布局控件用法

    提示: 文章附源程序下载地址获取, 请关注“剑指工控“微信公众号, 添加管理员, 加入剑指工控微信群获取。...第7讲 常用布局控件用法 前6期做串口调试助手主要用到了ComboBox、Label、Button、TextBox、Grid。...若控件需要跨越多个行或,使用Grid.RowSpan=”行数”和Grid.ColumnSpan=”数” 下面介绍一些其它一些常用布局控件。...添加一个测试窗口,App.xaml StartupUri=" MainWindow.xaml" 改为StartupUri="test.xaml"。则运行时显示这个新建窗口。...刚才StackPanel直接换成Canvas,则显示最后一个按钮,因为Canvas子控件是覆盖,通过设置Opacity="0"或者Visibility="Hidden"可以第二个、第三个按钮隐藏

    1.7K20

    简单表单布局控件

    这个方案最大好处是只需在Form声明表单逻辑结构,隐藏了布局细节和具体实现,而且可以通过Style设定不同表单外观。 3....SharedSizeGroup FormItemLabel是自适应,同一个Form不同FormItem这个通过SharedSizeGroup属性保持同步。...很多人喜欢Label设置为一个固定值,但国际化后由于英文比中文长长长长很多,或者字体大小会改变,或者因为Label是动态生成一开始就不清楚Label需要宽度,最终导致Label显示不完整。...如果Label设置一个很大宽度又会在大部分情况下显得左边很空旷,所以最好做成自适应。 3.2 用Form和附加属性简化表单构建 3.2.1 如何使用 ?...)这句,因为FormItemDataContext会影响FormItemHeader等绑定,所以需要清除DataContext值,让它使用继承值。

    2.4K30

    WPF DataGrid 通过自定义表头模拟首行固定

    WPF DataGrid 通过自定义表头模拟首行固定 独立观察员 2021 年 9 月 25 日 最近工作要在 WPF 做个表格,自然首选就是 DataGrid 控件了。...一开始,参照了其它界面,这一行还是通过数据行来做,只不过绑定数据项中有一个特殊属性来表明这是个特殊行,界面上通过数据模板选择器来自动展现出特别的内容(新增按钮及相关文字,并把其它字段内容隐藏)。...当然,使用 Button 来做也是可以。 最后来看 DataGrid 表格集合,每都是 DataGridTemplateColumn 类型。...单元格数据内容,都是设置了数据模板 DataTemplate,普通是绑定了类某个属性,特殊这里是一个删除按钮。...整个表头内容占据就是特殊表头样式那个同样跨了两行 ContentPresenter,只需要设置内容,不需要设置框架和样式,因为已经在特殊列表头样式设置好了。

    2.4K10

    【愚公系列】2023年10月 WPF控件专题 StackPanel控件详解

    欢迎 点赞✍评论⭐收藏 前言 WPF控件是Windows Presentation Foundation(WPF基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。...WPF控件可以分为两类:原生控件和自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...一、StackPanel控件详解 WPFStackPanel控件是一种容器控件,可以用来排列其子元素,使它们垂直或水平地堆叠。...如果Orientation属性设置为Horizontal,则两个TextBlock元素会在水平方向上堆叠。 StackPanel也可以包含其他容器控件,例如Grid和StackPanel。...--排列成一行或一 StackPanel默认排列方向:垂直:宽度 水平:高度与父窗口高度相同--> <!

    54900

    C语言经典100例002-M行N二维数组字符数据,按顺序依次放到一个字符串

    系列文章《C语言经典100例》持续创作,欢迎大家关注和支持。...喜欢同学记得点赞、转发、收藏哦~ 后续C语言经典100例将会以pdf和代码形式发放到公众号 欢迎关注:计算广告生态 即时查收 1 题目 编写函数fun() 函数功能:M行N二维数组字符数据...,按顺序依次放到一个字符串 例如: 二维数组数据为: W W W W S S S S H H H H 则字符串内容是:WSHWSHWSH [image.png] 2 思路 第一层循环按照数进行...M 3 #define N 4 /** 编写函数fun() 函数功能:M行N二维数组字符数据,按顺序依次放到一个字符串 例如: 二维数组数据为: W W W W S S S.../demo 二维数组中元素: M M M M S S S S H H H H 按顺序依次: MSHMSHMSHMSH -- END -- 喜欢本文同学记得点赞、转发、收藏~ 更多内容,欢迎大家关注我们公众号

    6.1K30

    【愚公系列】2023年10月 WPF控件专题 Expander控件详解

    WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见标准用户界面元素。...当用户单击控件标题时,子控件将会打开或关闭,并显示或隐藏StackPanel所有按钮。1.属性介绍WPFExpander控件是一个可展开区域,通常用于显示或隐藏可选内容。...2.常用场景Expander控件是WPF中常用控件之一,它可以一组相关控件或内容折叠起来,使用户可以灵活地控制显示和隐藏。...例如,可以设置一个Expander控件来切换窗口左侧面板。当Expander控件折叠时,面板关闭;折叠,面板呈现。...Expander控件是一个很有用WPF控件,适合用于需要分组和隐藏控件场景

    84231
    领券