Wpf QuickConverter XAML-无法标记表达式
我有一个Wpf QuickConverter XAML-无法标记表达式,wpf,xaml,data-binding,Wpf,Xaml,Data Binding,我有一个扩展器,它的可见性由集合视图源中的项目决定。当XAML编译并工作时,我最后给出如下警告消息,非常感谢在理解如何消除错误方面提供的任何帮助 将表达式“$p.View.Count>0”标记化失败?Visibility.Visible:Visibility.Collapsed“。您忘记了一个“$”吗?” 我相信,只有在显式注册了包含该类型的命名空间和/或程序集后,才能引用QuickConverter语法中的类型: QuickConverter.EquationTokenizer
扩展器
,它的可见性由集合视图源中的项目决定。当XAML编译并工作时,我最后给出如下警告消息,非常感谢在理解如何消除错误方面提供的任何帮助
将表达式“$p.View.Count>0”标记化失败?Visibility.Visible:Visibility.Collapsed“。您忘记了一个“$”吗?”
我相信,只有在显式注册了包含该类型的命名空间和/或程序集后,才能引用QuickConverter语法中的类型:
QuickConverter.EquationTokenizer
.AddNamespace(typeof(System.Windows.Visibility));
另外,QuickConverter似乎不会为标记化等式中引用的属性连接属性更改侦听器,因此您需要直接传入observable属性
Visibility="{qc:Binding '$P ? Visibility.Collapsed : Visibility.Visible',
P={Binding ItemsView.View.IsEmpty}}"
请注意,我测试了IsEmpty
而不是Count
,因为ICollectionView
上不存在Count
。测试Count
会在运行时起作用,但属性会在Xaml编辑器中被标记为未解析。什么库是qc:Binding
的来源?这绝对不是标准的WPF绑定语法。查看该语法,您可能需要将
编码为
,这样它就不会与标记扩展混淆。@BradleyUffner qc-QuickConverter我已经求助于定义一个转换器(integertoviability)来避免XAML编辑器中显示的错误
Visibility="{qc:Binding '$P ? Visibility.Collapsed : Visibility.Visible',
P={Binding ItemsView.View.IsEmpty}}"