Справочная информация:XAML обновление UI INotifyPropertyChanged
У меня есть приложение, которое имеет список CheckBox
х годов и Button
. Если пользователь выбирает (или несколько) CheckBox и нажимает кнопку, обработчик события Button проверяет, какой CheckBox установлен. Исходя из этого, он запускает процесс (т. Е. Gpupate).
Тогда у меня есть изображение (Visibility = "hidden"
) рядом с CheckBox в XAML. После нажатия кнопки код позади устанавливает его на Visibility.Visible.
После завершения процесса источник изображения изменяется на другое изображение. Басически, первое изображение показывает, что процесс запущен, второе изображение - это проверка, показывающая его завершение.
Я пытаюсь реализовать интерфейс INotifyPropertyChanged
, поэтому пользовательский интерфейс обновляется автоматически после изменения видимости. Иногда пользовательский интерфейс не обновляется после изменения видимости, так как существует количество CheckBoxes.
Однако, поскольку я не использую какое-либо свойство, я не могу привязывать его к чему-либо (или, может быть, к чему-то не хватает) и интерфейсу 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
модификатор ,
Вам понадобится модель представления, содержащая ваши свойства, с которыми вы будете связываться. Codebehind не имеет к этому никакого отношения (за исключением того, что он может содержать экземпляр модели представления, хотя я предпочитаю реализацию шаблона Singletone на этом). –