2012-03-06 41 views
23

Tôi muốn rằng SaveButton từ biểu mẫu của tôi sẽ biến mất khi biểu mẫu bị tắt. Tôi làm như vậy:Làm cách nào để gắn kết thuộc tính của điều khiển với thuộc tính của điều khiển khác?

this.formStackPanel.IsEnabled = someValue; 
if(this.formStackPanel.IsEnabled) 
{ 
    this.saveButton.Visibility = Visibility.Visible; 
} 
else 
{ 
    this.saveButton.Visibility = Visibility.Collapsed; 
} 

Không có cách nào ràng buộc các thuộc tính đó trong XAML? Có cách nào tốt hơn để làm điều đó không?

Trả lời

55

Có. Bạn sẽ có thể gắn kết IsEnabled của stackpanel với thuộc tính Visibility của nút. Tuy nhiên, bạn cần một công cụ chuyển đổi. WPF đi kèm với một lớp BooleanToVisibilityConverter mà nên thực hiện công việc.

<Window 
    x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Window.Resources> 
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
    </Window.Resources> 
    <StackPanel> 
    <ToggleButton x:Name="toggleButton" Content="Toggle"/> 
    <TextBlock 
     Text="Some text" 
     Visibility="{Binding IsChecked, ElementName=toggleButton, Converter={StaticResource BooleanToVisibilityConverter}}"/> 
    </StackPanel> 
</Window> 
+0

Nếu thay vì nút chuyển đổi, tôi có điều khiển tùy chỉnh (cho phép CustomControl) có nút chuyển đổi sau đó có thể thực hiện tương tự trừ ElementName = CustomControl.togglebutton? – pasha

Các vấn đề liên quan