DataContext в UserControls - PullRequest
       5

DataContext в UserControls

1 голос
/ 21 ноября 2010

Как обычно устанавливается DataContext в UserControls?Если я сделаю что-то похожее на приведенное ниже в моем UserControl,

DataContext = this

В моем окне или других элементах управления, когда я хочу использовать элемент управления с привязкой, у меня будет RelativeSource для указания наWindow / UserControl

<local:UserControl1 TextContent="{Binding Text1, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />

Способ связывания элементов управления в UserControls: установите RelativeSource в UserControls вместо DataContext?

<UserControl x:Class="SetCurrentValueTest.UserControl1" ...>
    <TextBox Text="{Binding Path=TextContent, RelativeSource={RelativeSource AncestorType={x:Type local:UserControl1}}}" />
</UserControl>

1 Ответ

1 голос
/ 21 ноября 2010

Я не знаю, если это то, что вы ищете, но если вы хотите привязать к свойствам зависимостей UserControls, используйте это:

<UserControl x:Class="SetCurrentValueTest.UserControl1" ...>
    <TextBox Text="{Binding Path=TextContent, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
</UserControl>

И если вы хотите привязать к DataContext UserControl,используйте эту привязку:

<UserControl x:Class="SetCurrentValueTest.UserControl1" ...>
    <TextBox Text="{Binding Path=DataContext.TextContent, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
</UserControl>

Не то, чтобы я указывал UserControl как Ancestor-Type, а не как ваш конкретный тип (UserControl1).

...