清除列表框中的数据并在Visual Studio 2012 C#XAML中重新加载
我创建了一个列表框并在列表中插入项目。但是,一旦我回到同一页 同样,将不会清除和重新加载数据。它将直接加载数据。这会导致数据出现两次 这是我的编码部分清除列表框中的数据并在Visual Studio 2012 C#XAML中重新加载,c#,wpf,xaml,visual-studio-2012,listbox,C#,Wpf,Xaml,Visual Studio 2012,Listbox,我创建了一个列表框并在列表中插入项目。但是,一旦我回到同一页 同样,将不会清除和重新加载数据。它将直接加载数据。这会导致数据出现两次 这是我的编码部分 <ListBox x:Name="LocationList" HorizontalContentAlignment="Center" ItemContainerStyle="{StaticResource ListBoxItemStretchContentStyle}"
<ListBox x:Name="LocationList"
HorizontalContentAlignment="Center"
ItemContainerStyle="{StaticResource ListBoxItemStretchContentStyle}"
Visibility="{Binding CurrentState,
Converter={StaticResource StateToNormalVisibilityConverter}}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock x:Name="PurchaseName" Text="{Binding Name}" Style="{StaticResource LongListSelectorGroupHeaderLetterTileStyle}"/>
<TextBlock x:Name="Description" Text="{Binding Description}" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="Price"
Text="{Binding Price}"
Visibility="{Binding Purchased,
Converter={StaticResource PurchasedBoolToVisibilityConverter}}"
VerticalAlignment="Center"/>
<Button Grid.Column="1"
VerticalAlignment="Center"
Content="Buy"
Visibility="{Binding Purchased,
Converter={StaticResource PurchasedBoolToVisibilityConverter}}"
Click="Buy_Location"/>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当我加载到特定页面时,如何清除数据
?我猜您在某些事件处理程序上填充了列表框,例如在
已激活的
上
在这种情况下,您只需在添加项目之前清除列表框
void MainWindow_OnActivated(object sender, EventArgs e)
{
LocationList.Items.Clear();
// ...
// populate LocationList here, as before
// ...
}
您可以通过绑定到数据集合来修复此错误…:
<ListBox ItemsSource="{Binding Items}" ... />
c) 在添加到集合属性之前清除集合属性:
Items.Clear();
foreach (YourDataType data in GetDataFromDatabase())
{
Items.Add(data);
}
Items = GetDataFromDatabase();
Items.Clear();
foreach (YourDataType data in GetDataFromDatabase())
{
Items.Add(data);
}