XAML 更新 UI INotifyPropertyChanged
XAML Update UI INotifyPropertyChanged
背景:
我有一个包含 CheckBox
es 和 Button
列表的应用程序。
如果用户选择一个(或多个)CheckBox 并单击按钮,Button 事件处理程序将检查哪个 CheckBox 被选中。基于此,它运行一个进程(即 gpupate)。
然后,我在 XAML 中的 CheckBox 旁边有一个图像 (Visibility = "hidden"
)。单击按钮后,后面的代码将其设置为 Visibility.Visible。
处理完成后,图像的来源更改为不同的图像。基本上,第一张图片显示的过程是 运行,第二张图片是一张显示其完成的支票。
我正在尝试实现 INotifyPropertyChanged
接口,因此 UI 在我更改可见性后会自动更新。有时,UI 在更改可见性后不会更新,因为有多个复选框。
然而,由于我没有使用任何 属性,我无法真正将它绑定到某些东西(或者可能是我遗漏了某些东西)和 INPC 接口。
如何实现接口(或类似功能)。
XAML代码
<StackPanel Orientation="Horizontal">
<Image x:Name="oneImage"
Source="{StaticResource inProcessImage}"
Visibility="Hidden" />
<CheckBox x:Name="oneCheckBox"
Content="CheckBox"
Style="{StaticResource normalCheckBox}"/>
</StackPanel>
按钮事件处理程序中的隐藏代码
if (oneCheckBox.IsChecked ?? false)
{
oneImage.Visibility = Visibility.Visible;
await Task.Run(() =>
{
//run GPUpdate
});
deleteHistoryImage.Source = (ImageSource)Resources["doneCheckImage"];
}
我对接口的实现一无所知,因为我不知道我需要用什么来绑定 Visibility
修饰符。
这不是您要查找的内容,但它会手动更新 GUI。
public void UpdateUI()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));
}
更改可见性后调用 UpdateUI();
。
背景:
我有一个包含 CheckBox
es 和 Button
列表的应用程序。
如果用户选择一个(或多个)CheckBox 并单击按钮,Button 事件处理程序将检查哪个 CheckBox 被选中。基于此,它运行一个进程(即 gpupate)。
然后,我在 XAML 中的 CheckBox 旁边有一个图像 (Visibility = "hidden"
)。单击按钮后,后面的代码将其设置为 Visibility.Visible。
处理完成后,图像的来源更改为不同的图像。基本上,第一张图片显示的过程是 运行,第二张图片是一张显示其完成的支票。
我正在尝试实现 INotifyPropertyChanged
接口,因此 UI 在我更改可见性后会自动更新。有时,UI 在更改可见性后不会更新,因为有多个复选框。
然而,由于我没有使用任何 属性,我无法真正将它绑定到某些东西(或者可能是我遗漏了某些东西)和 INPC 接口。
如何实现接口(或类似功能)。
XAML代码
<StackPanel Orientation="Horizontal">
<Image x:Name="oneImage"
Source="{StaticResource inProcessImage}"
Visibility="Hidden" />
<CheckBox x:Name="oneCheckBox"
Content="CheckBox"
Style="{StaticResource normalCheckBox}"/>
</StackPanel>
按钮事件处理程序中的隐藏代码
if (oneCheckBox.IsChecked ?? false)
{
oneImage.Visibility = Visibility.Visible;
await Task.Run(() =>
{
//run GPUpdate
});
deleteHistoryImage.Source = (ImageSource)Resources["doneCheckImage"];
}
我对接口的实现一无所知,因为我不知道我需要用什么来绑定 Visibility
修饰符。
这不是您要查找的内容,但它会手动更新 GUI。
public void UpdateUI()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));
}
更改可见性后调用 UpdateUI();
。