У меня есть ItemsControl в окне, один из столбцов которого содержит простую очень узкую панель стека, которая служит просто целью для всплывающего окна , которое отображается при определенных обстоятельствах.
После того, как было показано и пользователь о чем-то проинформирован, пользователь закрывает это всплывающее окно с помощью кнопки (команда, связанная с этой кнопкой, просто устанавливает свойство представлениямодель, к которой Popup.IsOpen привязан к false ).
Popup закрывается, но его изображение остается отпечатанным на ItemsControl до тех пор, пока он не будет прокручен или другое окно не будет перекрывать его.
Как перекрасить ItemsControl после закрытия Popup ?
Код:
1) ItemsControl
<ScrollViewer ...>
<ItemsControl x:Name="ux_List" ItemTemplate="{DynamicResource Lib_ItemTemplate}" ItemsSource="{Binding Path=TemplateInfos,Mode=OneWay}" AlternationCount="2" ... />
2) Шаблон элемента
<DataTemplate x:Key="Lib_ItemTemplate">
<Grid x:Name="grid">
...
<StackPanel Grid.Column="1">
<Popup IsOpen="{Binding Path=HasError,Mode=OneWay}">
<ContentPresenter Content="{Binding Path=ErrorContext, Mode=OneWay}"
и в последнем есть кнопка закрытия внутри презентаторастрока фрагмента выше:
<Button ... Command="{TemplateBinding CloseButtonCommand}" />
Команда связаначтобы эта кнопка реализована так:
private void OnCloseErrorMessageCommand()
{
HasError = false;
...
}