У меня возникли проблемы с привязкой к определенному свойству зависимости от бизнес-объекта в нашем приложении.У нас есть много других привязок на месте.Я просто не уверен, почему этот не работает.
UserControl XAML выглядит в основном так, как показано ниже.Это не работает и выдает PathError
, когда я проверяю статус.
<UserControl>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource BusinessObject}}">
<ListBox x:Name="DocumentDisplay" ItemContainerStyle="{DynamicResource ContainerStyle}" ItemsSource="{Binding Instance.ActiveDocument, Path=Paragraphs}" />
</Grid>
</UserControl>
Я проверил в коде C # и подтвердил следующее:
- DataContext является правильным и ненулевым.
- Свойство установлено и также не равно нулю.
Однако, I могу успешно создать привязку с помощью C #:
var dogPargBinding = new Binding() { Source = BusinessObjectClass.Instance.ActiveDocument, Path = new PropertyPath("Paragraphs") };
this.DocumentDisplay.SetBinding(ListBox.ItemsSourceProperty, dogPargBinding);
Несмотря на то, что это работает, я хотел бы, чтобы привязка работала из XAML, потому что большая часть нашей разработки выполняется с помощью Expression Blend.
Еще несколько подробностей о нашей реализации:
- Просто повторюсь, этот же паттен работал во многих других местах кода.
- ActiveDocument является свойством зависимостиBusinessObjectClass, и он устанавливается из мульти-привязки, созданной в коде C #.Тестирование показывает, что это свойство установлено правильно.
Я уверен, что есть простое объяснение того, что мы делаем неправильно, но сейчас дело дошло до того, что пришло время спрашивать.Заранее спасибо.
========================================================================================
Я наконец нашел проблему, которую яиметь.DependencyProperty был объявлен с неправильным типом класса владельца.Это все испортило, и ничего VS не привело меня к ответу быстро.
Самый полезный ответ был удален ...: (