在 WinUI3 中,我想在加载资源期间向 Window 的用户提供更新。每次加载资源时,我都想设置 TextBlock 的文本。我尝试直接设置文本,执行两种数据绑定并使用 INotifyPropertyChanged。但是对于我的生活,我不能做像更新 UI 这样简单的事情。是的,我在网上到处搜索,但没有任何效果。
请为我提供一个简单的 c# 和 xaml 示例,在我加载资源时实时更新文本块。谢谢你。
这是我尝试过的。
XAML:
<StackPanel x:Name="LoadingStackPanel" >
<ProgressRing x:Name="LoadingProgressRing" IsActive="True" IsHitTestVisible="True" />
<TextBlock x:Name="ProgressTextBlock" Text="{x:Bind Path=GetData, Mode=TwoWay}" />
</StackPanel>
方法一:
public event PropertyChangedEventHandler PropertyChanged;
private string _data = "Loading...";
private void OnPropertyChanged(string prop)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
}
public string GetData
{
get { return _data; }
set
{
_data = value;
OnPropertyChanged("GetData");
}
}
然后设置GetData
属性。
方法二:
ProgressTextBlock.Text = "Loading resource ...";
方法三:
DispatcherQueue.TryEnqueue(() => {
ProgressTextBlock.Text = "Loading resource ...";
});
方法四:
DispatcherQueue.TryEnqueue(() => {
GetData = "Loading resource ...";
});