Groupbox에는 두 개의 단추가있는 Grid가 있습니다.Groupbox 컨트롤 IsEnabled 상태가 해당 단추의 IsEnabled가 일부보기 모델에 바인딩되어있을 때 자식 단추로 전파되지 않음
희망의 코드가 더 잘 표현할 수 :
<Window x:Class="PanelTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="344" Width="361"
x:Name="This">
<Grid>
<GroupBox x:Name="_groupBox" IsEnabled="False" Header="GroupBox" HorizontalAlignment="Left" Margin="30,87,0,0" VerticalAlignment="Top" Height="206" Width="300">
<Grid>
<Button Content="Bound Button" IsEnabled="{Binding IsEnabled, Mode=TwoWay}" HorizontalAlignment="Left" Height="51" VerticalAlignment="Top" Width="128" Margin="140,75,0,0"/>
<Button Content="Unbound Button" HorizontalAlignment="Left" Margin="10,75,0,0" VerticalAlignment="Top" Width="125" Height="51"/>
</Grid>
</GroupBox>
<Button Content="Toggle Group Enabled" HorizontalAlignment="Left" Margin="93,29,0,0" VerticalAlignment="Top" Width="161" Click="EnableClick" Height="35"/>
</Grid>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
DataContext = new ButtonViewModel();
}
private void EnableClick(object sender, RoutedEventArgs e)
{
_groupBox.IsEnabled = !_groupBox.IsEnabled;
}
}
public class ButtonViewModel : INotifyPropertyChanged {
static ButtonViewModel() {
eventArgCache = new Dictionary<string, PropertyChangedEventArgs>();
}
bool _enabled;
public bool IsEnabled {
get { return _enabled; }
set {
if (_enabled == value)
return;
_enabled = value;
RaisePropertyChanged("IsEnabled");
}
}
...}
나는 그룹 상자 나에 IsEnabled 속성을 기다리고 있었다 사용 가능한 상태로 전환 할 때 설정할 수는 있지만 호출되지는 않으며 바인딩 된 단추는 그룹 상자의 활성화 된 상태를 취하지 않습니다.
(양방향) 바인딩과 부모 - 자식 관계를 동시에 작동시키는 방법이 있습니까?
요구 사항이 명확하지 않습니다. GroupBox가 비활성화되어있을 때와 Bound Button을 비활성화해야 할 때와 같은 것을 원하십니까? – Vishal
예, 그룹 상자를 토글 링할 때 단추의 상태를 사용하여 그룹 상자를 활성화하고 단추의보기 모델에서 IsEnabled에 바인딩을 허용 할 수 있습니다. – jchristof