Как получить динамический доступ к содержимому Expander?

У меня есть несколько динамически сгенерированных расширителей, имеющих DataGrid в качестве содержимого и CheckBoxes в DataGrid. Я получил DataGrid со следующим кодом ниже, но не знаю, как получить Expander.

    private void ChkBoxDamage_Checked(object sender, RoutedEventArgs e)
    {
    CheckBox b = (CheckBox)e.Source;
    DataGridRow row = b.TemplatedParent.TryFindParent<DataGridRow>();
    row.Background = System.Windows.Media.Brushes.Red;
    DataGrid dataGrid = b.TemplatedParent.TryFindParent<DataGrid>();
    Expander Gridexpanderr = dataGrid.TemplatedParent.TryFindParent<Expander>();
    Gridexpanderr.Background = new SolidColorBrush(Colors.Red);
    }

Приведенный выше код не изменит цвет фона расширителя.


person nizam uddin    schedule 10.08.2014    source источник
comment
Вы пробовали dataGrid.TryFindParent<Expander>() напрямую?...   -  person Pragmateek    schedule 10.08.2014
comment
Зачем весь код? Почему бы просто не привязаться к свойствам и/или не использовать IValueConverter для установки цвета непосредственно в xaml?   -  person Stígandr    schedule 10.08.2014
comment
Настоятельно рекомендуется удалить весь этот код и научиться правильно использовать WPF. WPF — это XAML и DataBinding, а не процедурный код. Какой бы пользовательский интерфейс, основанный на элементах (т. е. похожий на повторитель), требовал ItemsControl и правильных DataTemplate, а не кучу уродливого процедурного кода.   -  person Federico Berasategui    schedule 10.08.2014
comment
Хорошо, ребята, тогда я задал вопрос по той же проблеме в XAML, если вы можете помочь, это ссылка... stackoverflow.com/questions/25138707/   -  person nizam uddin    schedule 11.08.2014