Как связать свойство IsChecked радио, которое существует в другом пользовательском контроле? - PullRequest
2 голосов
/ 24 мая 2011

Я ищу способы связать свойство IsChecked переключателя, существующего в одном пользовательском элементе управления, с кнопкой, существующей в другом пользовательском элементе управления.Оба пользовательских элемента управления загружаются в MainWindow.Любые идеи высоко ценятся.

Код для MainWindow:

<Grid x:Name="LayoutRoot">
    <Frame Content="Frame" Source="/WpfApplication1;component/Page1.xaml"/>
    <local:NavUserControl HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
</Grid>

Кодовая страница1:

<Grid x:Name="LayoutRoot">
    <local:ContentUC HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>

Код для управления пользователем 1:

<Grid x:Name="LayoutRoot">
    <RadioButton x:Name="RadioBt1" Content="Enable Next Button" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>

Код для пользовательского контроля 2:

<StackPanel x:Name="LayoutRoot" Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,20">
    <Button Content="Back" HorizontalAlignment="Left" Width="75"/>
    <Button Content="Next" HorizontalAlignment="Left" Width="75" IsEnabled="{Binding IsChecked, ElementName=RadioBt}" />
</StackPanel>

1 Ответ

2 голосов
/ 24 мая 2011

Следуя принципам инкапсуляции , вам необходим родительский элемент UserControl для RadioButton, чтобы предоставить свойство IsChecked этой кнопки как собственное. После этого ваша кнопка, находящаяся за пределами UserControl, будет привязана к этому свойству.

Чтобы это произошло, вам нужно изменить код для UserControl, добавив соответствующее свойство (например, IsNextEnabled) и DependencyProperty (например, IsNextEnabledProperty) затем он будет сопоставлен со свойством RadioButton.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...