ConverterParameter:在 ItemTemplate 中设置它
我正在尝试将转换器参数设置为 ItemTemplate 内项目的属性。 由于 ConverterParameter 不是依赖属性,因此绑定不起作用。
但我真的不需要绑定,只需设置一次就足够了,因为它永远不会改变。
<ItemsControl ItemsSource="ItemsWithTypeProperty">
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding SelectedItem.Base.Type, Converter={l:IsEqualConverter}, Mode=TwoWay, ConverterParameter={Type}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
等于转换器:
转换:将值与参数进行比较并返回结果
ConvertBack:如果值为 true,则返回参数
ItemTemplate 的 DataContext 是一个类,其中包含名称为“Type”的属性。
它的类型是对象。
有没有办法将 {Type} 替换为仅将其设置为 (DataContext.)Type 一次的内容?如果是的话怎么办?
I'm trying to set the converter parameter to a property of an item inside an ItemTemplate.
Since ConverterParameter is not a dependency property Binding doesn't work.
But I don't really need a binding, just setting it once would be enough since it never changes.
<ItemsControl ItemsSource="ItemsWithTypeProperty">
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding SelectedItem.Base.Type, Converter={l:IsEqualConverter}, Mode=TwoWay, ConverterParameter={Type}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
IsEqualConverter:
Convert: compares the value to the parameter and returns the result
ConvertBack: If the value is true it returns the parameter
The DataContext of the ItemTemplate is a class which contains the Property with the name "Type".
Its type is object.
Is there a way to replace {Type} with something that would just set it to (DataContext.)Type once? If yes how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定 Type 到底是什么。是对象的System.Type吗?它总是固定类型吗?您可以编写如下内容:
如果 Type 不是常量,您可以重写转换器以实现 IMultiValueConverter 并使用 多重绑定。
I'm not sure what exactly Type is. Is it the System.Type of the object? Is it always a fixed type? You could write something like:
If Type isn't a constant, you could re-write your converter to implement IMultiValueConverter and use a MultiBinding.
尝试使用这个:
在您的转换器上:
Try to use this :
And on your Converter :