Установка свойств элемента управления в xaml - PullRequest
0 голосов
/ 22 декабря 2011

Я создаю пользовательский элемент управления WPF, который использует изображение внутри него.Этот пользовательский элемент управления будет похож на любой другой, он будет объявлен в xaml.Я хочу иметь открытое свойство для этого элемента управления, чтобы указать источник внутреннего изображения, почти так же, как вы делаете это при использовании элемента управления изображения:

<Image Source="http://foo.com/bar.jpg"></Image>

То, что я хочу сделать, это иметь следующееиспользование моего элемента управления:

<MyCustomControl ImageSource="http://foo.com/bar.jpg"></MyCustomControl>

А затем внутренне что-то вроде:

<UserControl class="MyCustomControl" ...>
     <Image Source="{Binding Imagesource}"></Image>
</UserControl>

Какие настройки мне нужны в моем коде, чтобы это работало?Я попробовал несколько вещей, но ничего не получилось.

1 Ответ

2 голосов
/ 22 декабря 2011

Вам необходимо свойство зависимости типа ImageSource и правильная привязка, либо используйте ElementName или RelativeSource, но неиспользуйте DataContext на UserControls.

<UserControl Name="control" x:Class="MyCustomControl" ...>
     <Image Source="{Binding ImageSource, ElementName=control}"/>
</UserControl>

<UserControl x:Class="MyCustomControl" ...>
     <Image Source="{Binding ImageSource,
                             RelativeSource={RelativeSource AncestorType=UserControl}}"/>
</UserControl>
...