C# ';多重绑定&x27;不能在';SetterBaseCollection';

C# ';多重绑定&x27;不能在';SetterBaseCollection';,c#,wpf,datatemplate,C#,Wpf,Datatemplate,我刚开始用C#编程,收到以下错误消息“不能在“SetterBaseCollection”集合中使用“MultiBinding”。只能在DependencyObject的DependencyProperty上设置“MultiBinding”。我的dea是禁用一些与输入值相关的组合框。稍后在xaml文件中使用相同的转换器,并且没有错误 <DataTemplate x:Key="ComboBoxDirectionCellDataTemplate"> <Can

我刚开始用C#编程,收到以下错误消息“不能在“SetterBaseCollection”集合中使用“MultiBinding”。只能在DependencyObject的DependencyProperty上设置“MultiBinding”。我的dea是禁用一些与输入值相关的组合框。稍后在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"/>


谢谢你的帮助

DataTemplate.Triggers
需要一个
Setter
集合,为什么要尝试在其中放置一个
多绑定

你得到的例外情况就是这样的结果


我不完全确定您在使用
多重绑定时尝试了什么,但是您可以通过在各个元素上单独执行绑定来获得更好的结果。

我可能错了-目前我无法检查这一点

我想你想要的是

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


Hi thanx,我只想对转换器使用多重绑定,而不想对Setter使用多重绑定。也许符号是错的?我的第一种方法是对元素执行绑定,但是我的model由一个集合和元素的索引组成,但是我发现没有办法获得所选条目。(类似于此PinFunctionOptions[SelectedPinFunctionIdx].SupportedDirections)嗯,如果没有实际的代码,我恐怕无法提供太多帮助,但是是的,您的问题是在
多绑定
的位置,它不会喜欢它。您好,此更改不再出现错误,但这两个值在转换器中都为空。但是我在输出窗口中没有收到绑定失败的错误消息?这解决了这个问题,然后-如果绑定确实编译,那么它在这里就可以工作(您必须在转换器中捕获并查看其他问题)。我不知道
PinFunctionOptions
等的作用。我建议结束这一个问题,然后打开另一个问题,为下一个问题提供更多细节。这就是它的工作原理——这样你会得到最好的关注(通常没有其他人会关注)