Привязка нового свойства в пользовательском элементе управления для просмотра модели - PullRequest
0 голосов
/ 22 июля 2009

Как мне расширить существующий элемент управления (в моем случае ComboBox), чтобы включить новое свойство, которое я могу связать со свойством в моей модели представления ??

У меня есть свойство зависимости в классе элемента управления следующим образом:

public class MyComboBox : ComboBox
{
    public static readonly DependencyProperty MyTextProperty =
        DependencyProperty.Register("MyText", typeof(string), typeof(MyComboBox));

    public string MyText
    {
        get
        {
            return GetValue(MyComboBox.MyTextProperty).ToString();
        }

        set
        {
            SetValue(MyComboBox.MyTextProperty, value);             
        }
    }

И хочу связать его декларативно из XAML следующим образом:

<MyComboBox MyText="{Binding MyTextOnViewModel,
    UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>  

Привязка просто не сработает, есть идеи почему ??

Спасибо.

1 Ответ

2 голосов
/ 22 июля 2009

Ваш метод получения и установки ссылается на TestTextProperty, а свойство объявлено как MyTextProperty.

Ваш геттер также должен кастовать вместо вызова .ToString ()

return (string)GetValue(MyTextProperty);

См. страницу для более полных инструкций.

...