У меня есть пользовательский элемент управления "ToolbarMenuButton" со следующим DependencyProperty:
public ObservableCollection<object> TbMenuItems
{
get { return (ObservableCollection<object>)GetValue(TbMenuItemsProperty); }
set { SetValue(TbMenuItemsProperty, value); }
}
public static readonly DependencyProperty TbMenuItemsProperty =
DependencyProperty.Register("TbMenuItems", typeof(ObservableCollection<object>), typeof(ToolbarMenuButton), new PropertyMetadata(null));
Я установил его так:
<customs:ToolbarMenuButton TbText="By Flight" TbIcon="PlaneRotated45"
TbMenuItems="{Binding Flights}"
TbItemCommand="{Binding FlightSelect}">
И он появляется, нет проблем.Теперь в пользовательском элементе управления есть обработчик щелчка для этой кнопки, который гарантирует, что контекстное меню установлено, а если нет, оно создает новое на основе свойства зависимости TbMenuItems, показанного выше.
Ошибка: Это свойство всегда равно null (я получаю пустое исключение во время выполнения, когда нажимаю кнопку).Я получил около 40 ответов от stackoverflow относительно этого, они либо не применимы, либо не исправили.Как я понимаю, свойства get / set для свойств зависимостей не вызываются, но я не уверен, как тогда я должен был получить данные из него.
Что я пробовал: Я пытался уведомить об изменении свойства, когда установлены рейсы.Я удостоверился, что Полеты установлены, поместив один из них в текстовое поле рядом с кнопкой (поэтому я также знаю, что текстовые данные, путь и т. Д. Все верны).Я изменил это на наблюдаемую коллекцию (изначально был списком), чтобы посмотреть, помогло ли это.Все остальные свойства зависимостей работают нормально (конечно, они также связаны с шаблоном данных в стиле, не уверен, что это имеет значение).Я не уверен, куда идти, сейчас.