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;文章来源:https://www.toymoban.com/news/detail-620284.html
ViewModel中Model的可访问性是否是Public,并是否设置了get,set。文章来源地址https://www.toymoban.com/news/detail-620284.html
public class ViewModel : ViewModelBase, IDisposable
{
public Model Model { get; set; }
}
到了这里,关于解决WPF绑定数据源,数据更新,UI不更新的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!