解决WPF绑定数据源,数据更新,UI不更新的问题
ViewModel中已经实现INotifyPropertyChanged接口方法RaisePropertyChanged。如果已经正确设置Model与ViewModel的。View中已经实现IDisposable接口。ViewModel中Model的可访问性是否是。,但此时UI仍不能更新,请检查View中是否。Model中已经配置TextValue。,且Model中的数据可以执行。
·
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; }
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)