由于我是 wpf 的新手,所以我在有关类似主题的网页中迷失了自己。我希望有人可以帮助我解释一些我无法理解的基本内容。
我有一个通过 websocket 连接到服务器的 wpf 应用程序。服务器每 5 秒向我返回一个列表。每个新列表都与旧列表无关。当我得到新列表时,旧列表不再重要。我对他的 ID 感兴趣的玩家(在列表中)的唯一属性。
不知何故,我需要刷新或更新列表框。我以这种方式使用了 observable 集合:
private static ObservableCollection<Player> sample;
private static List<Player> sample2 = new List<Player>();
public List<Player> update
{
set
{
sample2 = value;
sample = new ObservableCollection<Player>((List<Player>) sample2);
onPropertyChanged(sample, "ID");
}
}
private void onPropertyChanged(object sender, string propertyName)
{
if (this.PropertyChanged != null)
PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
}
调试时,propertychanged 始终为空。我真的迷失了如何更新列表框。
列表框的 xaml 如下所示:
<DataTemplate x:Key="PlayerTemplate">
<WrapPanel>
<Grid >
<Grid.ColumnDefinitions x:Uid="5">
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<TextBlock VerticalAlignment="Center" Margin="5" Grid.Column="0" Text="{Binding Path=ID}" FontSize="22" FontWeight="Bold"/>
</Grid>
</WrapPanel>