В настоящее время я работаю в пользовательском элементе WPF (корневой элемент моего файла XAML - «UserControl»), который, как мне известно, размещается внутри окна. Как я могу получить доступ к свойству окна, используя привязку данных?Что такое WPF Data Binding «RelativeSource FindAncestor»?
Кто-нибудь знает, почему просто
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="..." />
не работает? Сообщение об ошибке, которое я получаю:
System.Windows.Data Предупреждение: 4: Не удается найти источник для привязки со ссылкой «RelativeSource FindAncestor, AncestorType =« System.Windows.Window », AncestorLevel = '1' '.
Редактировать: В результате я использовал вариант подхода ArsenMkrt, поэтому принял его ответ. Тем не менее, мне все еще интересно узнать, почему FindAncestor не «просто работает».
Вы сказали, что изменили свой ответ, можете ли вы опубликовать то, что вы на самом деле сделали? – Miles
Обратите внимание, что я искал решение этой проблемы в контексте шаблона MVVM. Свойство Window, которое я хотел связать, на самом деле было свойством ViewModel Window. – user200783
ArsenMkrt предложил создать свойство в UserControl и привязать к нему, а затем, в свою очередь (в XAML) привязать это свойство к желаемому свойству окна. Однако с шаблоном MVVM UserControl никогда не появлялся в XAML, поэтому вторая часть была невозможна. – user200783