У меня есть MainWindow, у которого есть его viewmodel MainWindowViewModel. Внутри окна есть одно текстовое поле, которое принимает вход пользователя и несколько переключателей для фильтрации поиска и одной кнопки. Кнопка действия связан с ViewModel, используя команду:Реализовать прогресс в этом простом WPF-приложении
<Button x:Name="btnSearch" Command="{Binding SearchByCommand, Mode=OneWay}" />
Внутри ViewModel есть:
public ICommand SearchByCommand
{
get
{
if (_SearchByCommand == null)
{
_SearchByCommand = new RelayCommand(
x => this.LoadData(this.SearchBy),
x => { return !string.IsNullOrEmpty(this.SearchText); }
);
}
return _SearchByCommand;
}
}
И LoadData:
private void LoadData(string searchBy)
{
switch(searchBy)
...
}
Это прекрасно работает, но я не» t знать, как реализовать индикатор прогресса в этом решении. Когда пользователь нажимает кнопку поиска, индикатор прогресса должен запуститься и заморозить текущий пользовательский интерфейс. После загрузки данных в методе LoadData прогресс progresscount progressbar должен завершиться и снова включить интерфейс.
при реализации я получаю ошибку. Вызывающий поток должен быть STA, потому что для этого требуется множество компонентов пользовательского интерфейса. Где указать атрибут [STAThread]? – user1765862