ConverterParameter:在ItemTemplate中设置它

时间:2012-01-05 16:32:26

标签: wpf converter itemtemplate

我正在尝试将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}。输入一次?如果是的话怎么样?

2 个答案:

答案 0 :(得分:1)

我不确定究竟是什么类型。它是对象的System.Type吗?它总是固定类型吗?你可以这样写:

ConverterParameter={x:Type local:TypeToCompare}

如果Type不是常数,您可以重新编写转换器以实现IMultiValueConverter并使用MultiBinding

答案 1 :(得分:0)

尝试使用它:

......, ConverterParameter=Type}" />

在你的转换器上:

    if ((string)parameter == "Type"))
    {
        //Do some stuff
    }