Я пытаюсь создать ListBox, который обновляет содержимое ObservableCollection всякий раз, когда что-либо в этой коллекции изменяется, поэтому это код, который я написал для этого:Silverlight - Не удается заставить ListBox привязываться к моему ObservableCollection
XAML:
<ListBox x:Name="UserListTest" Height="300" Width="200" ItemsSource="listOfUsers">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding LastName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
C#:
public ObservableCollection<User> listOfUsers
{
get { return (ObservableCollection<User>)GetValue(listOfUsersProperty); }
set { SetValue(listOfUsersProperty, value); }
}
public static readonly DependencyProperty listOfUsersProperty =
DependencyProperty.Register("listOfUsers", typeof(ObservableCollection<User>), typeof(MainPage), null);
И я создал вызов к службе WCF, которая заполняет listOfUsers:
void repoService_FindAllUsersCompleted(object sender, FindAllUsersCompletedEventArgs e)
{
this.listOfUsers = new ObservableCollection<User>();
foreach (User u in e.Result)
{
listOfUsers.Add(u);
}
//Making sure it got populated
foreach (User u in listOfUsers)
{
MessageBox.Show(u.LastName);
}
}
ListBox никогда не заполняется ничем. Я предполагаю, что моя проблема может быть связана с xaml, поскольку у ObservableCollection есть все мои пользователи.
Ahh, конечно, я не могу поверить, что я этого не замечал. Спасибо! Теперь работать отлично – EPatton