Generic DataTemplate用于多个GridViewColumns
我有一个显示一些值的GridView:
...other Columns, not necessarily containing dates...
这很好用。 现在我想创建一个以特定方式格式化日期的数据模板:
只要指定了DisplayMemberBinding
添加CellTemplate
将不起作用。 因此,我必须删除DisplayMemberBinding
属性:
这是一个问题 :现在DisplayMemberBinding
已经消失了,我如何告诉GridView要显示哪个属性? GridViewColumn
没有DataContext
属性。
当然,我可以将属性的名称( Date1
Date2
)放入DataTemplate中,但是我需要为每个属性设置一个模板,这样做会Date2
模板的全部目的。
与您的问题相关的是我的:将多个资源传递到DataTemplate ,我终于找到了解决方案。 我认为你不能为每个这样的日期解决模板的定义。 但是,根据显示模板的复杂性,此解决方案将额外的DataTemplate
代码保持在最低限度:
这些额外的DataTemplate
使用附加属性,然后可以由DataTemplate
“MySpecialDate”中的转换器使用。 必须在后面的代码中定义附加属性。 我自己的问题的答案包含一个完整的例子 。
如果格式真的被广泛使用,那么您可以使用以下内容
在DateTimeColumn.cs
public class DateTimeColumn : GridViewColumn { protected override void OnPropertyChanged(PropertyChangedEventArgs e) { base.OnPropertyChanged(e); if (Equals(e.PropertyName, "DisplayMemberBinding") && DisplayMemberBinding != null) { DisplayMemberBinding.StringFormat = "{0:yyyy.MM.dd}"; } } }
XAML code...
(我不喜欢格式为魔术字符串,但可以根据需要修改代码。)
上述就是C#学习教程:Generic DataTemplate用于多个GridViewColumns分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1027473.html