XAML 更新 UI INotifyPropertyChanged

XAML Update UI INotifyPropertyChanged

背景:

我有一个包含 CheckBoxes 和 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();