Обзор: Я установил привязку к ComoboBox к свойству List. Но когда я запускаю приложение, в поле со списком нет данных.Как разрешить привязку null к ComboBox?
Debug шаги:
- Я проверил окно вывода для ошибок, которые мне подсказывает, что источник данных может быть нулевым переплета.
- Затем я устанавливаю точку останова на сеттер свойства QueryList. Это показывает, что подсчет списка равен 0. Кажется, вызов init выполняется после вызова setter на свойство.
Мои мысли, что список инициализируется после вызова сеттера. Имея в виду, что привязка будет нулевой на этом этапе, связывание вызывается в поле со списком.
Вопрос:
Как я могу вызвать метод Init для моего списка до начала сеттера QueryList называют?
Фрагмент кода: за
код -
//The binding property for the combo box
private List<string> _queryList;
public List<string> QueryList
{
get
{
return this._queryList;
}
set
{
this._queryList = value;
}
}
public MainWindow()
{
InitializeComponent();
// Establish the Login control
Ctrl = new CrmLogin();
QueryList = new List<string>();
InitQueryList();
}
//Call to init the list data
private void InitQueryList()
{
_queryList.Add("Query queues with unapproved email routers");
_queryList.Add("Query queues with emails in pending send status");
}
COMBOBOX связывания установки -
<ComboBox HorizontalAlignment="Left" ItemsSource="{Binding QueryList}" Grid.Column="1" x:Name="queryComboBox" Grid.Row="0" VerticalAlignment="Bottom" Width="300" Visibility="Collapsed" Text="Select a query"/>
Вы пытались вызвать InitializeComponent() в конце конструктора? – Breeze
попробуйте использовать ObservableCollection вместо списка – Taterhead