0

リストボックスを作成し、リストに項目を挿入しました。しかし、戻って同じページに再度アクセスすると、データがクリアされずにリロードされます。データを直接ロードします。これにより、データが 2 回表示されます。

これが私のコーディング部分です。

<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>

その特定のページにロードするときにデータをクリアするにはどうすればよいですか???

4

2 に答える 2

1

on のようなイベントハンドラでリストボックスにデータを入力すると思いますActivated

その場合は、ListBoxアイテムを追加する前に をクリアする必要があります。

void MainWindow_OnActivated(object sender, EventArgs e)
{
    LocationList.Items.Clear();

    // ...
    // populate LocationList here, as before
    // ...
}
于 2013-09-18T11:26:16.277 に答える
1

このエラーは、データ コレクションにバインドすることで修正できます... :

<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);
}
于 2013-09-18T11:30:53.573 に答える