2013-09-02 3 views
0

У меня есть окно с tabcontrol. Содержимое одного из элементов табуляции установлено в usercontrol. В моем главном окне есть кнопка, свойство IsEnabled которой должно быть установлено в свойство, которое открывается пользователем. Я надеюсь сделать это чистым способом, то есть с использованием привязки.Связать управление родительским окном с свойством usercontrol

Если это невозможно, я могу сделать это грязным способом, установив свойство IsEnabled кнопки в usercontrol. Я попробовал некоторые решения, опубликованные в этой группе, чтобы получить доступ к главному окну, но я не могу его получить.

Любая помощь с любым из подходов очень ценится.

+0

Вы хотите сделать это в коде или XAML? – Sheridan

+0

Предпочтительно XAML, но если это сложно/невозможно, тогда код будет делать тоже. –

+0

Я думаю, что вы можете сделать решение на основе событий. Когда когда-либо ваше свойство isEnabled пользовательского элемента управления изменяет событие пожарной магии на это и на кодовое окно, вы регистрируете обработчик событий для этого и соответствующим образом изменяете значение. –

ответ

1

Это можно сделать, указав имя пользователя usercontrol, вот пример с флажком, но он также стоит с usercontrols.

<Window x:Class="WpfApplication5.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 
     <TabControl> 
      <TabItem Header="Tab1"> 
       <CheckBox Name="checkBox1">Toggle to toggle button isEnabled</CheckBox> 
      </TabItem> 
     </TabControl> 
     <Button Grid.Row="1" IsEnabled="{Binding IsChecked, ElementName=checkBox1}"></Button>   
    </Grid> 
</Window> 
+0

Это сработало. Спасибо! –

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