我的xaml,我定义了一个列表框
<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>
在代码隐藏中,我定义了一个模块级的可观察采集设备。
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();
事实上,我能让它半途而废的唯一方法就是伪造它,从列表中删除项目,然后将其添加到备份中。显然不是一个长期的解决办法。
我错过了什么?