'MultiBinding'不能在'SetterBaseCollection'中使用

时间:2013-04-04 21:10:43

标签: c# wpf datatemplate

我刚开始在C#中编程并得到以下错误消息“A'MultiBinding'不能在'SetterBaseCollection'集合中使用。'MultiBinding'只能在DependencyObject的DependencyProperty上设置”。我的dea是禁用给转换器输入值的一些组合框depedant。稍后在xaml文件中使用相同的转换器并且没有错误..

    <DataTemplate x:Key="ComboBoxDirectionCellDataTemplate">
         <Canvas>
            <ComboBox Name="DirectionBi" ItemsSource="{Binding Source={StaticResource DirectionBiList}}" SelectedItem="{Binding Direction, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Background="#FFCDCDCD" />
            <ComboBox Name="DirectionOut" ItemsSource="{Binding Source={StaticResource DirectionOutList}}" SelectedItem="{Binding PinFunctionOptions[SelectedPinFunctionIdx].SupportedDirections, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Background="#FFCDCDCD" />
            <ComboBox Name="DirectionIn" ItemsSource="{Binding Source={StaticResource DirectionOutList}}" SelectedItem="{Binding PinFunctionOptions[SelectedPinFunctionIdx].SupportedDirections, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Background="#FFCDCDCD" />
        </Canvas>
        <DataTemplate.Triggers>
            <DataTrigger Value="In">
                <MultiBinding Converter="{StaticResource FunctionToGroupConverter}">
                    <Binding Path="PinFunctionOptions"/>
                    <Binding Path="SelectedPinFunctionIdx"/>
                </MultiBinding>
                <Setter TargetName="DirectionBi" Property="Visibility" Value="Hidden"/>

感谢您的帮助!!!!

2 个答案:

答案 0 :(得分:3)

我可能错了 - 我现在无法检查这个......

我认为你想要的是以下......

<DataTrigger ...>
<DataTrigger.Binding>
    <MultiBinding Converter="{StaticResource FunctionToGroupConverter}">
        <Binding Path="PinFunctionOptions"/>
        <Binding Path="SelectedPinFunctionIdx"/>
    </MultiBinding>
</DataTrigger.Binding>
</DataTrigger>

答案 1 :(得分:-1)

DataTemplate.Triggers期待收集Setter你为什么试图在其中放置MultiBinding

你得到的例外是这样的结果。

我不完全确定您使用MultiBinding尝试了什么,但通过单独对各个元素执行绑定,您可能会更好。