Я пытаюсь связать комбинированный список со свойством, которое я определил в другом файле.
Combobox, в OptionsWindow.xaml
:
<ComboBox x:Name="InputDevicesComboBox"
VerticalAlignment="Top"
Text="Please Select Input Device"
ItemsSource="{Binding InputDeviceNames, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type SIPBandVoIPClient:MainWindow}}}"/>
Имущество, в MainWindow.xaml.cs
:
private List<string> _inputDeviceNames;
public List<string> InputDeviceNames
{
get => _inputDeviceNames;
private set
{
_inputDeviceNames = value;
OnPropertyChanged("InputDeviceNames");
}
}
Ошибка при открытии окна параметров:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='SIPBandVoIPClient.MainWindow', AncestorLevel='1''. BindingExpression:Path=InputDeviceNames; DataItem=null; target element is 'ComboBox' (Name='InputDevicesComboBox'); target property is 'ItemsSource' (type 'IEnumerable')
Я понимаю, что по этому вопросу довольно много вопросов, но я не очень хорошо понимаю привязки WPF и не могу заставить их работать ...
Я создал эту привязку, используя встроенную привязку в Visual Studio, поэтому решил, что она будет работать. После некоторого поиска, я думаю, проблема в том, что свойство находится в другом файле, или оно не является частью визуального дерева (?).
У меня есть привязка со свойством, определенным в MainWindow.xaml.cs и привязанным в MainWindow.xaml, который работает отлично, поэтому я думаю, что это из-за того, что находится в другом файле.
Спасибо за помощь.