问题标签 [gridviewcolumn]
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 GridView Column和基于数据值的动态单元格模板
我有一个 GridView,我可以在运行时根据配置设置生成列。例如,文本列 = 在其中显示文本 Image Column = 在其中显示图形。
但问题是整个列将显示它们中的任何一种类型。我想要做的是基于特定单元格的数据,我想要(a)选择一个动态模板(b)动态(理想地)呈现内容作为 FrameworkElement 并使用它设置单元格内容。
这意味着每个单元格都可以显示文本或图像。所以在第一行,第一列可以是文本,第二行,第一列可以是基于数据值的图形。
有没有办法根据特定单元格的运行时内容值选择模板或完全呈现 UIElement 然后设置为单元格的值?
例子:-
单元格数据 = <bold>Hello. I'm bold</bold>
=> 将文本显示为粗体(TextBlock 元素)
单元格数据 = <img>test.png</img>
=> 显示图形(图像元素)
wpf - 在 GridViewColumn 内设置多个 TextBlock
我正在尝试TextBlock
在 a中设置两个GridViewColumn
:
但是我知道内容已经设置好了,为什么?
wpf - WPF 表修改 - 类似密码框的文本块
您好,我需要创建表格的一部分,例如密码框(我的意思是,必须使用例如 * 隐藏文本)
这是我桌子的一部分
当我添加例如“猫”时,我会得到明确的猫,但我想得到 ***,然后如果我要引用表的这一部分,我想得到这个“猫”
谢谢帮助
wpf - WPF:如何在我的列中找到 ColumnHeader?
我希望我的程序的用户能够自己决定他们希望在我的 ListView/GridView 中看到哪些列。
为此,我为 创建了两个附加属性GridViewColumn
,一个称为IsColumnVisible
类型Boolean
(打开和关闭列的可见性),另一个称为LastWidth
类型Double
(保持该列上次可见时的宽度)。
该物业IsColumnVisible
确实有一个OnChangedCallback
.
当属性设置为 时False
,我将列的当前宽度保存在我的属性中LastWidth
,并将当前宽度设置为 0。
当属性设置为 时True
,我从我的属性中获取列的最后一个宽度LastWidth
并将当前宽度设置为那个值。
到目前为止,这是可行的,但存在一个缺陷,即可以使用鼠标调整隐藏列的大小以再次可见。因此,如果您有三列并且隐藏了中间一列,则使用鼠标调整第一列的大小最终会使第二列再次可见。
为了摆脱这种情况,我想将IsEnabled
隐藏列的标题状态设置为False
,这就是问题开始的地方。
假设我的列在 XAML 中定义如下(第 1 列和第 4 列可见,第 2 和第 3 列隐藏):
由于 my 属性的默认值为 ,IsColumnVisible
因此该属性的True
myOnChangedCallback
仅针对第 2 列和第 3 列运行。
我有一个类型的对象,GridViewColumn
并且OnChangedCallback
能够设置IsEnabled
列标题的状态,我需要确定GridViewColumnHeader
我的GridViewColumn
.
AGridViewColumn
具有Header
类型的属性Object
。在第 2 列的情况下,此属性包含String
“第 2 列”,在第 3 列的情况下,此属性为Nothing
。
有什么方法可以将 my 的标题GridViewColumn
作为GridViewColumnHeader
对象?
在第 2 列的情况下,我可以自己创建一个GridViewColumnHeader
对象,将其设置为属性Content
的值,Header
然后将Header
属性设置为该对象。
但如果我不需要,我宁愿不做这些改变。
在第 3 列的情况下,某处应该已经有一个GridViewColumnHeader
对象(因为我在 XAML 中定义了它),但我找不到它。
我已经尝试走可视化树,但由于GridViewColumn
不是 aVisual
或 a Visual3D
,那是不可能的。
有任何想法吗?谢谢你。
wpf - 将用户控件添加到 GridViewColumn
我正在尝试将我的自定义用户控件添加到 GridViewColumn,我得到的只是该控件的 ToString() 输出。
我的代码:
我以前试过
无济于事。
请帮忙
wpf - WPF MVVM NET 3.5:GridViewColumn 条件绑定
我有一个列表视图,其中有一个网格视图。我将其列定义如下,例如对于员工类型列:
如您所见,它绑定到视图模型中的“EmployeeType”属性。
EmployeeType 可以有以下可能性(它们是字符串 id):
- 1000A
- 1000B
- 1000℃
所以我想做的是:
- 如果 EmployeeType 是 1000A 我想在“Employee Type”列中显示字符串 Manager
- 如果 EmployeeType 是 1000B 我想在“Employee Type”列中显示字符串 Engineer
- 如果 EmployeeType 是 1000C,我想在“Employee Type”列中显示字符串 Technical
另外,我不知道是否有可能显示在“经理”、“工程师”、“技术”列中,但内部(未显示)分别链接到 1000A、1000B、1000C,所以当我需要阅读从列表视图中选择的项目,我需要读取 1000A、1000B、1000C 而不是显示的字符串,类似于 winforms 中的组合框,您显示一个成员,但该成员与未显示的值相关联,您可以阅读。
我怎样才能做到这一点?
也许使用如下转换器:
另外,在哪里放置这个转换器?在视图模型中?
查看:
因此,在将列显示到列表视图时使用此转换器会调用“转换”方法,并且在从列表视图中读取选定项目时,如果我需要读回该列的值,如何使用 ConvertBack 方法读取?
此外,另一种可能性是在 xaml 视图中使用触发器,并在从列表视图中读取选定项目以实现某种方法进行相反的转换以恢复原始值时。
你有什么建议?请注意,此列是只读的(显示但不可修改),不能修改。
wpf - GridViewColumnHeader 不出现
我有一个 WPF 表单,其中包含一些 GridViewColumns 来显示数据。但是,即使我在每一列中设置了 Header 属性,标题也永远不会出现。
XAML:
代码隐藏:
视图模型:
传递给 ViewModel 构造函数的对象保证包含 dataA、dataB 和 dataC 等。
有人可以解释为什么我的 GridView 中的标题没有出现吗?
c# - C# WPF 将列表的特定对象绑定到 GridViewColumn
我一直在努力解决这个问题,但没有解决我的问题。
案子:
我有包含信息对象的列表 A。Info 具有属性 id、name 和包含 Details 对象的列表 B。Details 具有属性 id、Name 和 bool。
是否可以将列表 A 绑定到 ListView 并显示列表 B 中 bool 为真的对象的属性?
编辑:
列表 B 包含多个对象,但只有一个对象具有 true 布尔值,其他对象具有 false。我想在带有绑定的 GridViewColumn 中使用真正的布尔值显示对象的名称,但直到现在还没有找到方法
c# - WPF DataGridColumn DisplayMemeberBinding
我有这个ListView
排序程序:
ListView.View
当使用如下定义时它运行良好DisplayMemberBinding
:
我现在需要使一些列右对齐,所以我必须使用这样的东西:
但是,我现在不再有DisplayMemberBinding
排序过程的参考(标有 >>> 的行)。有没有办法从CellTemplate
->找到绑定TextBlock
?我一直在使用 Snoop 挖掘 C# 代码和 XAML 代码,但找不到绑定。