Я знаю, название немного запутанно, поэтому позвольте мне объяснить. У меня есть пользовательский элемент управления, у которого есть свойство зависимости. Я обращаюсь к этому свойству зависимостей с регулярным свойством Input. В моей модели модели у меня также есть свойство Input. У меня есть эти два свойства связаны друг с другом в XAML, используя двухстороннюю связывания, как показано ниже:Двусторонняя привязка к свойству зависимостей в пользовательском элементе управления и вызов метода
<uc:rdtDisplay x:Name="rdtDisplay" Input="{Binding Input, Mode=TwoWay}" Line1="{Binding myRdt.Line1}" Line2="{Binding myRdt.Line2}" Height="175" Width="99" Canvas.Left="627" Canvas.Top="10"/>
Хорошо в моей модели представления, я вызвать метод всякий раз, когда значение входного сигнала не изменится, как показано на моей собственности:
public string Input
{
get
{
return input;
}
set
{
input = value;
InputChanged();
}
}
Проблема в том, что когда я устанавливаю значение ввода в моей модели просмотра, он обновляет значение ввода переменной в соответствии с моим установщиком в моем свойстве. Как я могу заставить это обновить свойство зависимостей в пользовательском элементе управления? Если я оставлю код input = value;
, тогда я получаю ошибку компиляции.
мне нужно что-то вроде этого:
public string Input
{
get
{
return UserControl.Input;
}
set
{
UserControl.Input = value;
InputChanged();
}
}
Если я свойство ввода на мой взгляд, модель выглядит следующим образом:
public string Input
{
get; set;
}
то это работает, однако, я не могу назвать InputChanged(), который мне нужно вызвать при изменении свойства. Все предложения приветствуются.
Входной свойство должно быть связано с DependencyProperty. Кажется, вы это делаете, но я не понимаю, почему он не работает. Возможно, вы не создали ViewModel для вашего UserControl, не так ли? Как создать rdtDisplayViewModel, который вы используете внутри UserControl для выполнения всего вашего пользовательского интерфейса? Что-то говорит мне, что ты ушел и сделал это .... – Will
У меня есть код в коде, который находится за моим пользовательским элементом управления, но не отдельная модель представления. – ProgrammingDude
Для двух способов работы ваше свойство ввода CLR должно использовать уведомление об изменении. – AnjumSKhan