我正在寻找将一个用户控件中存在的单选按钮的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>
答案 0 :(得分:2)
遵循encapsulation的原则,您需要UserControl
的父RadioButton
将该按钮的IsChecked
属性公开为自己的属性。然后,这会使位于UserControl
之外的按钮绑定到该属性。
要实现这一点,您需要修改UserControl
的代码隐藏,以添加相应的属性(例如IsNextEnabled
)和DependencyProperty
(例如IsNextEnabledProperty
})然后将映射到RadioButton
的属性。