Имя не может быть найдено в области имен --- Ошибка при отображении анимации в сетке данных - PullRequest
2 голосов
/ 18 октября 2011

У меня есть DataGrid, который отображает некоторые данные. Исходя из некоторых условий мне нужно анимировать какую-то конкретную ячейку в DataGrid. Поэтому я создал пользовательский элемент управления, содержащий метку и анимацию. Затем я отобразил этот анимированный ярлык в сетке данных, используя столбцы Шаблон. Когда я хочу запустить анимацию, я переберу визуальное дерево, найду пользовательский элемент управления и вызову функцию StartAnimation. Но здесь я получаю ошибку

Имя 'lblLabel' не может быть найдено в области имен system.windows.controls.label.

При поиске я читаю здесь и здесь . но без помощи.

Я могу анимировать этот элемент управления, когда помещаю его в окно. Но проблема возникает, когда я использую в сетке данных.

Может кто-нибудь пролить свет на этот вопрос. Или есть какой-нибудь лучший способ оживить ячейку сетки данных?

1 Ответ

3 голосов
/ 20 октября 2011

После целого дня работы я решил эту проблему.

Ранее код xaml для таблицы данных был таким:

<DataGridTemplateColumn Header="MyHeader">    
    <DataGridTemplateColumn.cellTemplate>
        <DataTemplate>
            <my:mycontrol content="{binding mybinding}">
        </DataTemplate>
    </DataGridTemplateColumn.cellTemplate>
</DataGridTemplateColumn Header="MyHeader">

здесь я не объявил имя для MyControl так меняя утверждение

<my:mycontrol content="{binding mybinding}"> 

до

<my:mycontrol x:Name="lblLabel"content="{binding mybinding}">

решил мою проблему. Я надеюсь, что это поможет кому-то еще.

...