У меня есть два отдельных конвертера для видимости, один из которых основан на обновлении поля и на основании того, разрешено ли поле видеть. Я использую updateField для каждого текстового элемента на моей странице, чтобы звезда появилась рядом с обновленным полем. Но некоторые текстовые элементы видны только некоторым пользователям на основе уровней разрешений.
Например:
<Image Visibility="{Binding ElementName=MyObject, Path=UpdatedFields, Mode=OneWay, Converter={StaticResource updatedFieldConverter}, ConverterParameter=FieldToTest}" Source="Properties:Resources.star_yellow" />
и
<TextBlock FontSize="21" Foreground="{DynamicResource LabelBrush}" Text="{x:Static Properties:Resources.Some_Text}" Visibility="{Binding Source={StaticResource allowedFields}, Path=Some_Text_Field, Converter={StaticResource visibilityConverter}}" />
Моя проблема в том, что для случая полей, требующих разрешения, мне нужно запустить оба конвертера, чтобы определить, появляется ли звезда. Есть ли способ сделать логическое "И" по результатам двух преобразователей?
Я просмотрел этот пост, но, похоже, он не позволяет передавать разные параметры параметров в два разных преобразователя.
------- -------- Update
Я также попытался создать MultiValueConverter с помощью этого xaml
<Image Grid.Row="4" Grid.Column="0" Source="star_yellow.png">
<Image.Visibility>
<MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest" >
<Binding ElementName="allowedFieldsModel" Path="Some_Text_Field" Mode="OneWay" />
<Binding ElementName="MyObject" Path="UpdatedFields" Mode="OneWay" />
</MultiBinding>
</Image.Visibility>
</Image>
Но когда он входит в конвертер, оба значения: "DependencyProperty.UnsetValue". Поэтому я, видимо, делаю что-то не так.
-------- Решение ---------
Мне пришлось изменить это, но потом это сработало.
<Image.Visibility>
<MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest">
<Binding Source="{StaticResource allowedFieldsModel}" Path="Some_Text_Field" />
<Binding Path="MyObject.UpdatedFields" />
</MultiBinding>
</Image.Visibility>