问题标签 [datagridtextcolumn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF DataGridTextColumn 包含退格字符
“BS”(别名 Backspace,别名 \b)如何成为数据绑定到 DataGridTextColumn 的字符串属性中的值:
XAML
C#
我在数据库中找到了包含 [BS] 作为类别值的条目。保证在访问数据库的过程中没有其他代码对属性进行更改。在调试期间无法重新创建这种情况,因为我显然不知道如何在 TextBox 中键入 [BS]。只有一个客户能以某种方式做到...
你有什么想法怎么会发生?我试图在属性设置器中实现检查,......但我试图在这里找出真正的问题。
c# - 根据 DataGridTextColumn 中的布尔属性将文本框文本设置为“是”或“否”
我有一个数据网格,我的一列如下所示:
我要做的是在 BoolPropertyValue 分别为真或假时在该行的列中输入“是”或“否”。
BoolPropertyValue 是一个布尔属性。
不幸的是,这不起作用,它总是输入“真”或“假”。
我想在不需要转换器并且只使用 xaml 代码的情况下做到这一点。
我究竟做错了什么?
c# - WPF 使用转换器更改数据网格单元格背景颜色
我有一个 WPF 数据网格。我需要比较两列日期时间类型的列,根据比较结果,我为当前列和行中的两个单元格设置单元格背景颜色。我为每个数据网格行执行此操作。为了做到这一点,我使用了一个转换器。
转换器:
这里我有两个问题:
- 当 date1 > date2 单元格背景颜色未更新为棕色时。
- 如果 date1 <= date2,应该返回默认的 datagrid 单元格背景颜色,我不知道该怎么做。
我还为数据网格定义了一个行样式。行样式根据某些条件设置整个行的背景颜色。但是在这种情况下,这些条件不满足,但上面的列样式(date1.Date > date2.Date)满足,所以单元格背景应该涂成棕色。
利用本帖,如果满足行样式的条件,整个背景设置为橙色,如果单元格列样式(本帖以上)也满足,需要涂成棕色,那以哪个为准?行样式还是单元格样式?
c# - WinForms:DataGridView - 编辑单元格时显示组合框
在 C# 应用程序中,我有一个 DatagridView,其中所有单元格都为 DataGridTextBoxCol。网格用未绑定的值动态填充。网格有不同类型的食物。我的需要是,当用户单击/想要编辑一个单元格时 - 一个带有食物列表的组合框出现在单元格的位置。如果它们是单元格中的任何值,则应在组合中选择该值。用户可以键入并在组合中选择项目。这是我到目前为止所尝试的:
将此组合放置allergensCmb
在当前单元格中
与上述dgv_CellBeginEdit
事件代码一样,组合不会显示在单元格位置中。单元格的位置是 X=0,Y=11 - 1st col 第一行单元格。它与表单尺寸无关。为了获取和设置从网格单元中的组合中选择的项目的值,我尝试实现 CellEndEdit 和 allergensCmb_SelectedIndexChanged 事件。但没有什么能完全 100% 工作。使用 selectedIndexChanged 事件,我丢失了当前单元格,因为单元格不再处于活动状态;无法获取当前单元格或者它是否脏了!!
任何线索,我如何实现这种类型的控件 - 在 DataGridView 的当前单元格上显示一个组合框。我做了很多研究并进行了尝试,但没有任何效果。
非常感谢任何帮助。
/////////////////////////////////// ******** **** 更新 ///////////////////////////////////
正如你们都建议使用 DataGridViewComboBoxColumn,我做了:
这可以。在网格中,我只将每个单元格视为 ComboBox。如何使其仅显示为普通文本,并且仅在编辑时才显示为组合框。使用 EditingControlShowing 事件的原因是什么 - 我不明白那个逻辑?我只需要更改值并将标志设置isCellAssignGridChanged
为 true,因此可以更新数据库。
您能否对这部分有所了解。
谢谢
wpf - WPF将数据网格中的选定项目绑定到第二个数据网格并根据它显示值
我有两个 WPF 数据网格。当从第一个数据网格 dg1 中选择一行时,第二个数据网格 dg2 中称为“注释”的列应仅显示为空字符串,并且仅当 dg1 中所选行的“注释类型”列的内容相等时对“我”。否则,dg2 中“Notes”列的内容应该是来自 Notes 的集合 ItemsDg2 中的内容。
我的问题是,当值为“I”时,dg1 中“Note Type”列的内容显示在 dg2 的“Notes”列中,而不是显示空字符串。
ItemsDg1 是 It1 的列表
ItemsDg2 是 It2 的列表
It1 和 It2 类有更多属性,但我在这里只展示了理解场景的最低限度。这同样适用于 dg1 和 dg2,它们有更多的数据网格列。
c# - 转换器不点火
我的数据网格中有以下 DataGridTextColumn:
过滤器是视图模型中的一个属性:
EnumStatus 是一个枚举:
转换器:
在窗口中创建资源:
我的问题是永远不会调用转换器。为什么?
调试时,输出窗口显示:
System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。BindingExpression:Path=DataContext.Filter; 数据项=空;目标元素是“DataGridTextColumn”(HashCode=20546761);目标属性是“可见性”(类型“可见性”)
wpf - IErrorDataInfo 将工具提示样式应用于所有 DataGridTextColumns
我在一个 WPF C# 项目中工作,我在显示用于验证的工具提示时遇到了很多问题,我在 StackOverflow 上的另一篇文章中遇到了这个解决方案。
尽管这可行并将工具提示样式应用于列,但我必须将其粘贴到所有列中
我希望它发生......我已经尝试过创建一种风格,但我没有成功。我认为这与绑定和“相对来源”有关。
是否可以从中创建一种样式并将其应用于每一列,我该怎么做?!
wpf - 在 DataGridTextColumn 中键入文本不起作用
..但粘贴文本可以。
可能是什么原因?
wpf - 设置 DataGridTextColumn 宽度
我有一个 MVVM WPF 应用程序。
我在 WPF 数据网格中有一个 DataGridTextColumn。我想将其宽度属性绑定到转换器并将其单元格值传递给它。对于这一列,在某些情况下,该列的所有单元格都是空的,所以我还想将列宽设置为固定值,如果所有单元格都是空的,则为 20(与其 MinWidth 相同),否则为 50。问题是该转换器没有被调用。
为了简化和关注有趣的部分,我只在这里发布相关代码:
转换器:
我的最终目标是在所有单元格为空时将列宽设置为 20,否则将其宽度设置为 50。我认为使用转换器是个好主意,但从不调用转换器。为什么?
更新:Finllay 我已经完成了@Andy 的建议:将视图模型中的属性绑定到视图上的 datagridtextcolumn 宽度属性。视图模型上的这个属性遍历所有列单元格,然后相应地设置宽度。见下文。我的问题是视图模型上的这个属性 'EntryDateColumnWidth' 仅在应用程序启动时第一次触发,然后在调用 OnPropertyChanged("EntryDateColumnWidth") 时,它不会被引发。
查看型号:
此外,从视图模型中,当我为数据网格设置项目列表时,我执行:
此属性返回一个 DataGridLength 对象,因为当任何列单元格不为空时,我需要将宽度设置为自动。
注意:ViewModelBase 是一个实现 INotifyPropertyChanged 的抽象类。
查看:
类 BindingProxy:
更新 2:
依赖对象类:
资源字典 (DictionaryDO.xaml) 中的实例:
将其合并到资源字典 (app.xaml) 中:
窗口:
查看型号:
但是列宽没有被更新......