XAML中已经设置
<TextBox x:Name="textBox_Value" Text="{Binding Model.TextValue}" />
View中已经实现IDisposable接口。
ViewModel中已经实现INotifyPropertyChanged接口方法RaisePropertyChanged。
public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// 提供区域性信息
/// </summary>
internal CultureInfo CultureInfos = new CultureInfo(CultureInfo.CurrentUICulture.Name);
/// <summary>
/// 提供属性更改事件的方法
/// </summary>
/// <param name="propertyName"></param>
internal void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Model中已经配置TextValue
private string _TextValue;
public string TextValue
{
get
{
return _TextValue;
}
set
{
if (_TextValue != value)
{
_TextValue = value;
RaisePropertyChanged(nameof(TextValue));
}
}
}
如果已经正确设置Model与ViewModel的INotifyPropertyChanged,且Model中的数据可以执行RaisePropertyChanged,但此时UI仍不能更新,请检查View中是否DataContext = ViewModel;
ViewModel中Model的可访问性是否是Public,并是否设置了get,set。
public class ViewModel : ViewModelBase, IDisposable
{
public Model Model { get; set; }
}
版权归原作者 fancyang 所有, 如有侵权,请联系我们删除。