Привет, у меня проблема с пониманием привязки в WPF.
У меня есть пользовательский элемент управления, он содержит ListView и читает данные из базы данных, но это занимает не менее 60 секунд, а затем заполняет представление списка данными.
В строке состояния отображается процесс загрузки.
Если данные загружены в память и пользователь открывает UC, модель View загружает данные в ListView. Все отлично работает.
Но если пользователь открывает UC до окончания чтения данных и в конце чтения данных, я вызываю тот же метод в viewModel, в коде данных загружается в элемент списка, но ListView по-прежнему пуст. Каким-то образом ListView не показывает данные.
<ListView x:Name="ListViewUK" ItemsSource="{Binding ListOfAccountsFromExchUK}" >
Просмотр модели
public class ExchequerViewModel :BaseView
{
List<Exch_Account> exch_Accounts_UK;
public ObservableCollection<PAMHeaderModel> ListOfAccountsFromExchUK { get; set; }
#region CONSTRUCTOR
public ExchequerViewModel()
{
ListOfAccountsFromExchUK = new ObservableCollection<PAMHeaderModel>();
PopulateExchequerList();
}
#endregion
public void PopulateExchequerList()
{
exch_Accounts_UK = ExchequerMemory.ExcAccountList_UK;
if (exch_Accounts_UK == null)
{
AutoClosingMessageBox.Show("Exchequer UK - datas are loading Pleae try again later.", "Information", 2000);
}
if (exch_Accounts_UK != null)
{
UmbList = new Dictionary<string, string>();
foreach (var acc in exch_Accounts_UK)
{
ListOfAccountsFromExchUK.Add(new PAMHeaderModel
{
Company = "UK",
RefNo = acc.Code,
Name = acc.Company,
Subsidiary = acc.UDF6
});
UmbList.Add(acc.Code, acc.UDF6); ? acc.UDF6 : "";
}
if (ListOfAccountsFromExchUK != null)
UKStatusInfoLabel = ListOfAccountsFromExchUK.Count();
}
Контроль пользователя
public ExchequerViewModel viewModel;
public ExchequereUC()
{
InitializeComponent();
viewModel = new ExchequerViewModel();
DataContext = viewModel;
}