2012-03-06 4 views
23

Я хочу, чтобы SaveButton из моей формы исчез, когда форма отключена. Я делаю это таким образом:Как связать свойство элемента управления с другим свойством элемента управления?

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

не является способом связывания этих свойств в XAML? Есть ли лучший способ сделать это?

ответ

55

Да. Вы должны иметь возможность привязать IsEnabled стекапаны к свойству видимости вашей кнопки. Однако вам нужен конвертер. WPF поставляется с классом BooleanToVisibilityConverter, который должен выполнять эту работу.

<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

Если вместо ToggleButton, у меня есть пользовательский элемент управления (позволяет сказать CustomControl), который имеет ToggleButton то может сделать то же самое, за исключением ELEMENTNAME = CustomControl.togglebutton? – pasha

Смежные вопросы