2

我有两种方式将 TextBox 内容绑定到另一个类中的属性的问题。搜索 stackoverflow 提供了很多提示/解决方案,但似乎没有一个有效。

在我的 XAML 代码中,我有:

< TextBox ... Width="336" IsReadOnly="True"
 Text="{Binding Path=AssignedClearProgram, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>

(......我删除了所有不重要的项目)

在随附的cs代码中,我有:

public CombiWindow(Combi combi)
{
    ViewModel = new CombiViewModel(combi);
    DataContext = ViewModel;
}

在 CombiViewModel 中:

    [UsedImplicitly]
    public string AssignedClearProgram { get; set; }

似乎我第一次分配 AssignedClearProgram 时,文本框充满了我设置的文本,但是在显示窗口并从代码更新 AssignedClearProgram 后(即调用 set 方法),数据未在屏幕。

更改此变量时,是否有人有更新文本框的解决方案?

亲切的问候,

米歇尔

4

2 回答 2

5

您的视图模型类需要实现 INotifyPropertyChanged 并且您需要在更改属性时引发该接口的事件。然后绑定将发现更改并更新文本框。

于 2012-07-21T22:01:55.093 回答
2

您的视图模型类应该实现该INotifyPropertyChanged接口。

您的财产将如下所示:

private string assignedClearProgram;

public string AssignedClearProgram
{
   get { return assignedClearProgram; }
   set
   {
       if (assignedClearProgram != value)
       {
           assignedClearProgram = value;

           // Notify property has changed here using PropertyChanged event from INotifyPropertyChanged.
       }
   }
}

阅读本文,了解如何实现INotifyPropertyChanged接口并利用其PropertyChanged事件的示例。

于 2012-07-21T22:07:26.433 回答