Я хочу добавить строку состояния в свое приложение, но не могу понять, каким будет лучшее решение?Я использую c # с WPF и моделью MVVM.
Прямо сейчас у меня есть решение, которое частично работает.Проблема в том, что строка состояния обновляется не так часто, как хотелось бы.Когда я, например, записываю новое значение в строку, к которой привязана строка состояния, строка состояния обновляется слишком поздно и хочет показать любые различия.
Простой пример (не реальный код):
StatusBar привязан к состоянию и изначально = Готов.
status = Загрузка
метод загрузки
статус = готов
Это не приводит к визуальным изменениям.Когда я отлаживаю код, значение статуса обновляется, но не изменяется в строке состояния.
У вас есть предложения?
Мой код
XAML View: MainView.xaml
<StatusBar DockPanel.Dock="Bottom" >
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid Margin="0 -5 0 0">
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Grid.Column="0">
<TextBlock Name="statusBarStatus" Text="{Binding Status}"></TextBlock>
</StatusBarItem>
</StatusBar>
Часть MainViewModel
private void UpdateDepartmentsExecute()
{
Status = "Updating...";
repository.ShowAppDep = ShowAppDep;
repository.ShowInDep = ShowInDep;
repository.ShowSisDep = ShowSisDep;
repository.getPriority1 = SetPriorityTo1;
repository.getPriority2 = SetPriorityTo2;
repository.getPriority3 = SetPriorityTo3;
repository.getPriority4 = SetPriorityTo4;
repository.getPriority5 = SetPriorityTo5;
repository.UpdateTasksToShow();
repository.UpdateWorkareas();
repository.UpdateEmployees();
repository.UpdateTasksToShowByEmployee();
repository.UpdateWorkAreaByEmployee();
repository.GenerateStatistics();
TasksToShowCount = repository.TasksToShow.Count();
if (SelectedView == new Uri("pack://application:,,,/View/EstimateLoadView.xaml"))
{
MessageBox.Show("The Gantt Chart wan't show all relations when you are filtering the data. This might be a source to errors.", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
SelectedView = new Uri("pack://application:,,,/View/EntryView.xaml");
}
Status = "Ready"; }