Ошибка при настройке Datacontext для UserControl в WPF - PullRequest
1 голос
/ 19 января 2010

У меня есть usercontrol, где я пытаюсь установить DataContext, как показано ниже:

<UserControl.DataContext>
    <Binding ElementName="dataGrid" Path="MyViewModel">

    </Binding>
</UserControl.DataContext>

Здесь dataGrid - это дочерний DataGrid элемент управления, а MyViewModel - мой ViewModel класс. В настоящее время выдает следующую ошибку во время выполнения:

Cannot find source for binding with reference 'ElementName=dataGrid'. BindingExpression:Path=MyViewModel; DataItem=null; target element is 'UserControl1' (Name=''); target property is 'DataContext' (type 'Object')

Может кто-нибудь помочь, в чем здесь проблема?

Ответы [ 3 ]

1 голос
/ 21 января 2010

Скорее всего, проблема связана с ограничениями именного пространства. Привязки ElementName работают только в определенных пределах. Эта конкретная ошибка говорит о том, что он не может найти именованный элемент "dataGrid". Можете ли вы показать больше окружающего XAML?

0 голосов
/ 19 января 2010

Эта привязка пытается получить доступ к dataGrid.MyViewModel, но MyViewModel не является свойством DataGrid ... Вместо этого вы должны сделать что-то подобное:

<Binding ElementName="dataGrid" Path="DataContext.MyViewModel">
0 голосов
/ 19 января 2010

Установлен ли MyViewModel в DataContext dataGrid?

Если это так, измените MyViewModel в Path to DataContext, и все готово ... Если нет, установите класс MyViewModel в DataContext и удалите ElementName из Binding, и он также должен работать;)

...