wpf - 数据触发重复使用
我有当前的 DataTrigger:
<DataTrigger Binding="{Binding HeaderType}" Value="1">
<Setter Property="BorderThickness" Value="5"/></DataTrigger>
我想对值 2-100 执行相同的操作
我是否必须复制数据触发器 99 次或者也许有更好的方法?
I have the current DataTrigger:
<DataTrigger Binding="{Binding HeaderType}" Value="1">
<Setter Property="BorderThickness" Value="5"/></DataTrigger>
I want to do the same with values 2-100
Do I have to copy the Data Trigger 99 times or maybe there's a better way ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
向视图模型添加属性:
在数据触发器中使用该属性:
通常,我喜欢使 XAML 尽可能简单,将所有逻辑放在视图模型中,并避免使用转换器,除非绝对必要。
假设您添加另一个视图,您希望在其中使用粗体文本来指示标头类型介于 1 和 100 之间。只需重新使用
HasImportantHeader
属性,例如:稍后,您可能会决定所有最多 200 的标题类型应具有粗边框和粗体文本。更改
HasImportantHeader
属性的实现非常简单。Add a property to your view model:
Use that property in the data trigger:
Generally, I like to keep my XAML as simple as possible, put all the logic in the view model, and avoid using Converters unless they are absolutely necessary.
Let's say you add another view, where you want to use bold text to indicate the header type is between 1 and 100. Just re-use the
HasImportantHeader
property, something like:Later, you may decide that all header types up to 200 should have thick border and bold text. It'll be a simple matter of changing the implementation of the
HasImportantHeader
property.我在类似的情况下使用过它
并且在转换器中我们根据范围返回 true 或 false
I've used this in similar situations
And in the converter we return true or false depending on the ranges
为此,您需要使用转换器。您可以在 DataTrigger 上添加转换器。
转换器将允许您传入值,并返回 true 或 false。
你的转换器应该看起来像
{
}
你可能还会发现这个有趣的 http:// /zamjad.wordpress.com/2010/07/29/range-converter/
You need to use a converter for that purpose.You can add a converter on your DataTrigger.
The Converter will allow you to pass in the value, and return true or false.
and your converter should look something like
{
}
You may also find this interesting http://zamjad.wordpress.com/2010/07/29/range-converter/