我正在尝试将converter参数设置为ItemTemplate中项目的属性。 由于ConverterParameter不是依赖属性,因此Binding不起作用 但我真的不需要绑定,只需设置一次即可,因为它永远不会改变。
<ItemsControl ItemsSource="ItemsWithTypeProperty">
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding SelectedItem.Base.Type, Converter={l:IsEqualConverter}, Mode=TwoWay, ConverterParameter={Type}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
IsEqualConverter:
转换:将值与参数进行比较并返回结果
ConvertBack:如果值为true,则返回参数
ItemTemplate的DataContext是一个包含名称为“Type”的Property的类 它的类型是对象。
有没有办法用一些只能将它设置为(DataContext。)的东西替换{Type}。输入一次?如果是的话怎么样?
答案 0 :(得分:1)
我不确定究竟是什么类型。它是对象的System.Type吗?它总是固定类型吗?你可以这样写:
ConverterParameter={x:Type local:TypeToCompare}
如果Type不是常数,您可以重新编写转换器以实现IMultiValueConverter并使用MultiBinding。
答案 1 :(得分:0)
尝试使用它:
......, ConverterParameter=Type}" />
在你的转换器上:
if ((string)parameter == "Type"))
{
//Do some stuff
}