프로그래밍 방식으로 액세스해야 할 필요는 없습니다. ViewModel을 사용하고 속성을 체크 박스에 바인딩해야합니다.
<CheckBox IsChecked="{Binding IsCheckBoxOneChecked}" Content="Boo" Grid.Column="0" Grid.Row="0"/>
<CheckBox Content="Hoo" Grid.Column="0" Grid.Row="1"/>
public class SomeViewModel : INotifyPropertyChanged
{
private bool isCheckBoxOneChecked;
public bool IsCheckBoxOneChecked
{
get { return isCheckBoxOneChecked; }
set
{
if (value.Equals(isCheckBoxOneChecked))
{
return;
}
isCheckBoxOneChecked = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
은 또한이 같은
DataContext
을 설정해야합니다 : XAML을 통해 수도
this.DataContext = new SomeViewModel();
합니다.
그러면 IsCheckBoxOneChecked
속성을 true로 설정하면 확인란이 자동으로 선택됩니다. 사용자가 확인란의 선택을 취소하면 속성도 false로 설정되고 반대의 경우도 마찬가지입니다.
여기를보세요 : Model-View-ViewModel (MVVM) Explained
을 그럼에도 불구하고, 당신이 당신의 Grid
당신이 반복 할 수있는 모든 아이들의 Name
속성을 설정하는 경우 :
// Grid is named 'MyGrid'
foreach (var child in this.MyGrid.Children)
{
if (child is CheckBox)
{
var checkBox = child as CheckBox;
// Do awesome stuff with the checkbox
}
}
[이에 대한 답변 질문] (http://stackoverflow.com/questions/10279092/how-to-get-children-of-a-wpf-container-by-type) 도움이 될 수 있습니다. – allonym