【发布时间】:2014-12-03 17:45:14
【问题描述】:
我在这里搜索了很多次并找到了一堆示例,但似乎无法正常工作。
我设置了一个解决方案,其中 ViewModel 通过定位器引用 MainViewModel 类。主视图模型类有:
public NotifyLog Log
{
get { return LogMgr.Instance.Log; }
}
在里面。这允许我指定:
<TextBox IsEnabled="True" Text="{Binding Log.Text, Mode=OneWay}" />
NotifyLog 定义为:
public class NotifyLog : INotifyPropertyChanged
{
public NotifyLog()
{
_Log = new StringBuilder();
}
private void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
public event PropertyChangedEventHandler PropertyChanged;
private StringBuilder _Log;
public void Append(String Value)
{
_Log.Append(Value);
OnPropertyChanged("Text");
}
public string Text
{
get { return _Log.ToString(); }
}
public override string ToString()
{
return this.Text;
}
}
对于应用程序的初始启动,文本框被填充,但 OnPropertyChanged 处理程序永远不会被绑定自动填充,因此不会检测到任何更改。我做错了什么,我只是不知道是什么......
感谢您的宝贵时间, 盲人
【问题讨论】:
标签: c# wpf data-binding