скрытое (не видимое) поле со списком в xaml - PullRequest
0 голосов
/ 03 сентября 2010

У меня проблема с привязкой данных к комбинированному списку, который находится на вторичной (изначально не сфокусированной) вкладке.По сути, у меня есть форма silverlight с несколькими вкладками, всякий раз, когда я перемещаю этот комбинированный список на первую (основную) вкладку, данные загружаются и все работает, как ожидалось, но когда это поле со списком находится на дополнительной вкладке, которая не имеет фокусаизначально при первой загрузке поле со списком не имеет данных, однако, если я связываю данные со списком, используя c #, в коде позади него есть данные!Любые идеи о том, как решить эту проблему?

Моя привязка в XAML (это не работает)

<ComboBox x:Name="MyComboBox"  Height="24" Width="149"
          ItemsSource="{Binding Path=MyList}" DisplayMemberPath="Name"  />

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

У меня была такая же проблема ... Решение, которое я нашел для решения этой проблемы, заключается в следующем: при каждом изменении источника данных (datacontext): перебирайте все элементы вкладок, выбирайте каждый из них, обновляйте макет и принудительно перепривязывайте.В конце выберите обратно исходный элемент вкладки.Примерно так (сделать при срабатывании обработчика событий при изменении источника данных (может быть в загруженном событии в случае начальной загрузки):

var selectedIndex = tabControl.SelectedIndex;
foreach (TabItem item in tabControl.Items)
{
    tabControl.SelectedItem = item;
    item.UpdateLayout();
    DataContext = null;
    DataContext = ViewModel;  
}
tabControl.SelectedIndex = selectedIndex;
0 голосов
/ 22 октября 2010

MyList, скорее всего, пуст при первой привязке. Попробуйте использовать событие, которое доступно при переключении на следующую вкладку, чтобы загрузить MyList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...