당신은 VisualTreeHelper
클래스의 도움으로 그것을 얻을 수 있습니다.
일부 유틸리티 클래스에서이 메서드를 이동하면 다시 사용할 수 있습니다.
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj,
string name) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T &&
(child as FrameworkElement).Name.Equals(name))
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child, name))
{
yield return childOfChild;
}
}
}
}
사용법 :
foreach (CheckBox checkBox in UtilityFunctions.
FindVisualChildren<CheckBox>(InputDocItemsDataGrid, "cbxSingleRow"))
{
checkBox.IsChecked = true;
}
"모든 일반 물건은"WPF의 데이터 바인딩을 통해 이루어집니다. 절차상의 코드가 아닙니다. –
DataGrid 외부의 다른 확인란처럼 코드 숨김에서 해당 확인란에 액세스해야한다는 것을 알고 있습니다. 그 효과를 얻기위한 명확한 해결책이 있습니까? – Stojdza
'Codebehind에서 해당 체크 박스에 액세스하면됩니다. '- 무엇 때문에? 무엇을 하든지간에 DataBinding을 통해 수행하십시오. –