Установка свойства в XAML для пользовательского элемента управления - PullRequest
2 голосов
/ 12 мая 2010

У меня есть пользовательский элемент управления, у которого есть свойство типа Integer, которое я пытаюсь установить в шаблоне XAML как свойство свойства в bindingsource. Если я устанавливаю свойство, используя жестко запрограммированное целое число, т.е.

<MyControl MyIntegerProperty="3" />

Это отлично работает, но если я попробую

<MyControl MyIntegerProperty="{Binding MyDataContextIntegerProperty}" />

не получается.

Я знаю, что целочисленное свойство в MyDataContext возвращает действительное целое число, и я знаю, что этот формат работает, так как непосредственно над этим в шаблоне у меня есть строка

 <TextBlock Text="{Binding MyDataContextStringProperty}" />

, который работает правильно.

Есть ли какой-либо флаг, который мне нужно установить в свойстве Integer пользовательских элементов управления, чтобы это работало? Или я что-то не так делаю?

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 мая 2010

MyIntegerProperty должно быть Свойство зависимости для привязки ...

Вот пример:

public static readonly DependencyProperty MyIntegerProperty = 
    DependencyProperty.Register("MyInteger", typeof(Integer), typeof(MyControl));

public int MyInteger
{
    get { return (int)GetValue(MyIntegerProperty); }
    set { SetValue(MyIntegerProperty, value); }
}

Тогда определение MyControl в XAML станет:

<MyControl MyInteger="{Binding MyDataContextIntegerProperty}" />
0 голосов
/ 12 мая 2010

Вам необходимо определить MyIntegerProperty как свойство зависимости. Вы можете определить это так:

public class MyControl : UserControl 
{   
    public static readonly DependencyProperty MyIntegerProperty = 
             DependencyProperty.Register("MyInteger", typeof(Integer),typeof(MyControl), <MetaData>);

    public int MyInteger
    {
        get { return (int)GetValue(MyIntegerProperty); }
        set { SetValue(MyIntegerProperty, value); }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...