![](/img/trans.png)
[英]Change image by click of list view item in Visual Studio 2012 c# and xaml
[英]Clearing Data in ListBox and Reload in Visual Studio 2012 C# XAML
我创建了一个列表框并在列表中插入项目。 但是,一旦我回来并再次转到同一页面将不会清除和重新加载数据。 它将直接加载数据。 这导致数据出现两次。
这是我的编码部分。
<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>
当我加载到该特定页面时,我怎么能清除数据?
我猜你在一些事件处理程序上填充列表框,比如在Activated
。
在这种情况下,您应该在添加项目之前清除ListBox
。
void MainWindow_OnActivated(object sender, EventArgs e)
{
LocationList.Items.Clear();
// ...
// populate LocationList here, as before
// ...
}
您可以通过绑定到数据集合来修复此错误...:
<ListBox ItemsSource="{Binding Items}" ... />
......然后要么:
a)在填写之前实例化您的数据集合:
Items = new ObservableCollection<YourDataType>();
foreach (YourDataType data in GetDataFromDatabase())
{
Items.Add(data);
}
b)每次都明确设置属性:
Items = GetDataFromDatabase();
c) 在添加之前清除集合属性:
Items.Clear();
foreach (YourDataType data in GetDataFromDatabase())
{
Items.Add(data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.