Tôi có hai bộ chuyển đổi riêng biệt để hiển thị, một dựa trên việc liệu một trường đã được cập nhật và một trường dựa trên việc một trường có được phép nhìn thấy hay không. Tôi sử dụng một cập nhật cho một mục văn bản trên trang của tôi sao cho một ngôi sao xuất hiện bên cạnh một trường được cập nhật. Nhưng một số mục văn bản chỉ hiển thị với một số người dùng dựa trên cấp độ quyền.Làm thế nào để boolean && hai chuyển đổi tầm nhìn
Ví dụ:
<Image Visibility="{Binding ElementName=MyObject, Path=UpdatedFields, Mode=OneWay, Converter={StaticResource updatedFieldConverter}, ConverterParameter=FieldToTest}" Source="Properties:Resources.star_yellow" />
và
<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}}" />
Vấn đề của tôi là đối với trường hợp các lĩnh vực cho phép bắt buộc của tôi cần phải chạy cả hai bộ chuyển đổi để xác định xem các ngôi sao xuất hiện. Có cách nào để làm một boolean "Và" trên kết quả của hai chuyển đổi?
Tôi đã xem this post nhưng dường như không cho phép các bộ tham số khác nhau được chuyển vào hai trình biến đổi khác nhau.
Cập nhật ------- --------
Tôi cũng đã cố gắng để tạo ra một MultiValueConverter với XAML này
<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>
Nhưng khi nó xâm nhập vào bộ chuyển đổi cả hai giá trị là "DependencyProperty.UnsetValue". Vì vậy, tôi đang làm điều gì đó sai ở đây.
-------- Giải pháp ---------
Tôi phải sửa đổi điều này, nhưng sau đó nó hoạt động.
<Image.Visibility>
<MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest">
<Binding Source="{StaticResource allowedFieldsModel}" Path="Some_Text_Field" />
<Binding Path="MyObject.UpdatedFields" />
</MultiBinding>
</Image.Visibility>
Tôi đã thử rằng không có may mắn, hãy xem phần cập nhật ở trên – Bill
@Psiclopz: Tôi đã đưa ra một ví dụ.Điều này hoạt động trên máy MY =) Trường hợp của bạn có vẻ phức tạp hơn thế, nhưng có lẽ nó sẽ giúp ích. – Jens
Nó gần như làm việc cho tôi, nhưng như bạn đã nói, trường hợp của tôi phức tạp hơn một chút. Tôi đã đăng giải pháp của mình ở trên. Cảm ơn bạn đã giúp đỡ. – Bill