我遇到了xaml解析器不喜欢我的绑定语句的问题,但我看不出该语句有什么问题。
属性DataMemberBinding的属性值{Binding VehicleSpeed,ConverterParameter = {Binding InMiles},Converter = {StaticResource SpeedConverter},Mode = TwoWay}无效
VehicleSpeed和InMiles是我在xaml文档的xaml顶级网格的DataContext属性中的类的参数。
这句话过去没有ConverterParameter的工作现在正在抱怨我将第二个绑定添加到我试图传递给ValueConverter的“bool InMiles”。
如果有人发现此行有任何问题,请告诉我。
答案 0 :(得分:3)
您无法绑定converter参数,因为它不是绑定对象的依赖项属性。
相反,您可以将整个数据项传递给转换器,并在Convert()方法中使用其 VehicleSpeed 和 InMiles 属性。
答案 1 :(得分:1)
我不确定您是否可以将DataBinding用于转换器参数。我认为你需要传入绑定对象并从那里访问属性。
答案 2 :(得分:0)
块引用 相反,您可以将整个数据项传递给转换器,并在Convert()方法中使用其VehicleSpeed和InMiles属性。 块引用
是的,它可能是正确的方法,但有时你有没有改变的对象,只有该对象的属性改变了(通过INotifyPropertyChanged)。
所以如果你喜欢这个
<Grid DataContext={Binding Model}>
<MyControl SomeProperty={Binging, converter={staticResourse ConverterWhichTakesViewModel}/>
</Grid>
模型属性的更改不会对MyControl产生影响,因为模型不会更改。
所以做这样的事情会很好:
<Grid DataContext={Binding Model}>
<MyControl SomeProperty={Binging Model.MyProperty, converter={staticResourse ConverterWhichTakesViewModel}, ConverterParameter ={Bindging}/>
</Grid>
但它不起作用......-((。例外:由于对象的当前状态,操作无效
有没有想过这个?