如何将 DataTrigger 绑定到 Interface 属性
我有 4 个类实现我的自定义 ICalendarItem 接口。 该界面有一个名为“Jours”的属性。
ObservableCollection<KeyValuePair<DateTime, DateTime>> Jours;
我的类像这样覆盖该属性:
public override ObservableCollection<KeyValuePair<DateTime, DateTime>> Jours {...}
当 Jours.Count 从 0 变为 1 时,我想触发一个操作,所以我尝试了以下操作:
<DataTrigger Binding="{Binding Path=Jours.Count}" Value="1">
<DataTrigger Binding="{Binding Path=(ICalendarItem)Jours.Count}" Value="1">
这 2 个 DataTrigger 都不起作用。
有人知道如何将 DataTrigger 绑定到 Interface 属性吗?
I have 4 class which implement my custom ICalendarItem Interface.
That interface has a property called 'Jours'.
ObservableCollection<KeyValuePair<DateTime, DateTime>> Jours;
My class override that property like this :
public override ObservableCollection<KeyValuePair<DateTime, DateTime>> Jours {...}
When the Jours.Count goes from 0 to 1, i want to trigger an action so i tried this :
<DataTrigger Binding="{Binding Path=Jours.Count}" Value="1">
<DataTrigger Binding="{Binding Path=(ICalendarItem)Jours.Count}" Value="1">
None of these 2 DataTrigger works.
Anyone know how to bind a DataTrigger to an Interface property?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您想要专门绑定到自定义接口属性时,需要将命名空间、接口和属性名称放在括号内。然后,您可以在括号外引用子属性,例如 Count。
When you want to specifically bind to a custom interface property, you need to place place the namespace, interface and property name within parenthesis. You can then reference a sub-property like Count outside of the parenthesis.
在我的测试中,它的工作做得很好。请参考下面的代码,或许对你有帮助。
此代码的作用是,当“Jours.Count”等于“3”时,窗口背景变为红色。
XAML:
隐藏代码:
In my test, its work is done well. Please refer to the following code, which probably helps with you.
What this code do is, when `Jours.Count' equals to "3", the Window background gets red color.
XAML:
CodeBehind: