Mam dwa oddzielne konwertery dla widoczności, jeden na podstawie tego, czy pole zostało zaktualizowane i jeden na podstawie tego, czy pole może być widoczne. Używam updatedField jeden dla każdego elementu tekstowego na mojej stronie, aby gwiazda pojawiła się obok zaktualizowanego pola. Ale niektóre elementy tekstowe są widoczne tylko dla niektórych użytkowników na podstawie poziomów uprawnień.Jak przekonwertować boolean && dwa konwertery widzialności
Na przykład:
<Image Visibility="{Binding ElementName=MyObject, Path=UpdatedFields, Mode=OneWay, Converter={StaticResource updatedFieldConverter}, ConverterParameter=FieldToTest}" Source="Properties:Resources.star_yellow" />
i
<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}}" />
Moim problemem jest to, że w przypadku pól przyzwoleniem wymagane muszę uruchomić oba konwertery do ustalenia, czy pojawia się gwiazda. Czy istnieje sposób na zrobienie boolowskiego "I" na wynikach dwóch konwerterów?
Spojrzałem na this post, ale wydaje się, że nie pozwala to na przekazywanie różnych zestawów parametrów do dwóch różnych konwerterów.
Aktualizacja ------- --------
Próbowałem też stworzyć MultiValueConverter z tym 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>
Ale kiedy wchodzi do konwertera obie wartości są "DependencyProperty.UnsetValue". Więc najwyraźniej robię coś złego tutaj.
-------- Rozwiązanie ---------
musiałem zmodyfikować do tego, ale to działało.
<Image.Visibility>
<MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest">
<Binding Source="{StaticResource allowedFieldsModel}" Path="Some_Text_Field" />
<Binding Path="MyObject.UpdatedFields" />
</MultiBinding>
</Image.Visibility>
Próbowałem tego bez powodzenia, patrz wyżej aktualizacja – Bill
@Psiclopz: Podałem przykład.Działa to na MOJEJ maszynie =) Twoja sprawa wydaje się być bardziej skomplikowana, ale może pomaga. – Jens
To prawie dla mnie zadziałało, ale jak powiedziałeś, moja sprawa była nieco bardziej skomplikowana. Napisałem moje rozwiązanie powyżej. Dzięki za pomoc. – Bill