Я мой XAML, у меня определен ListBox
<ListBox x:Name="lstStatus" Height="500"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" VerticalAlignment="Top" Margin="2, 2, 2, 2">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image />
<TextBlock Width="70" Text="{Binding FriendlyID}" />
<TextBlock Width="150" Text="{Binding StatusName}" />
<TextBlock Width="70" Text="{Binding ANI}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Effect>
<DropShadowEffect/>
</ListBox.Effect>
</ListBox>
В коде позади я определяю устройства ObservableCollection уровня модуля.
private ObservableCollection<Device> devices = new ObservableCollection<Device>();
В событии OnNavigatedToпривязать коллекцию к списку
lstStatus.ItemsSource = devices;
Скорее всего, коллекция не будет расти или уменьшаться, но объекты внутри себя все время меняются.По какой-то причине список не обновляется, когда я выполняю следующий код:
Device selectedDevice = null;
foreach (Device dv in devices)
{
if (dv.IsTrunk)
{
selectedDevice = dv;
break;
}
}
if (selectedDevice != null)
selectedDevice.StatusName = DateTime.Now.ToString();
else
throw new Exception();
Фактически, единственный способ, которым я смог наполовину заставить его работать, - это подделать его, удалить элементыиз списка, а затем добавьте его обратно.Очевидно, что это не решение проблемы в долгосрочной перспективе.
Чего мне не хватает?