У меня есть ситуация, когда мне нужно получить доступ к объекту, который был определен в одном пользовательском элементе управления из вложенного пользовательского элемента управления глубиной 2 уровня. Возьмем, к примеру, следующее:
public class MyClass
{
public MyClass()
{
MyData = new MyDataProvider();
}
public MyDataProvider MyData;
public string SelectedValue;
}
public class MyDataProvider
{
public MyDataProvider()
{
MyList = new List<string>() { "Test1", "Test2", "Test3" };
}
public List<string> MyList;
}
Window.xaml
<Window.DataContext>
<my:MyClass></my:MyClass>
</Window.DataContext>
<Grid>
<my:UC1></my:UC1>
</Grid>
UC1.xaml
<Grid Height="Auto" Width="316">
<my:UC2 Margin="0,0,41,52" DataContext="{Binding Path=MyData}"/>
<TextBox Text="{Binding SelectedValue}" Margin="22,73,119,113" />
</Grid>
UC2.xaml
<Grid>
<StackPanel>
<Label Content="My List"/>
<ComboBox Name="comboBox1" ItemsSource="{Binding Path=MyList}"
SelectedItem="{Binding Path=SelectedValue}"/>
</StackPanel>
</Grid>
Пожалуйста, не обращайте внимания на пропущенные события Изменения свойств и т. Д., Как это только для примера
Выше в основном показаны мои настройки. 2 вложенных пользовательских элемента управления, в которых нижний уровень, UC2, пытается установить для выбранного элемента комбинированного списка свойство SelectedValue объекта, определенного в Window xaml (MyClass). Проблема в том, что способ, которым я указал привязку SelectedItem, не работает. Мне нужно сказать это, чтобы найти дерево к окну. Это то, что я не знаю, как это сделать.
Пожалуйста, помогите.
Большое спасибо.