Nouman Altaf
Nouman Altaf

Reputation: 339

How to Clear values from ListBox without removing List items in WPF

In my situation When I use productsLocLB.items.Clear(). it removes All items instead of removing only values.

ListBox x:Name="productsLocLB"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="False" BorderThickness="0" ItemsPanel="{StaticResource ListboxItemPanel}"   HorizontalAlignment="Stretch" Width="Auto" Background="{x:Null}" Margin="0,25,0,0" Height="564" VerticalAlignment="Top" ItemContainerStyle="{StaticResource RackListBoxItemStyle}"  >
    <ListBox.ItemTemplate>
        <!--User Info Cadview item Tamplate -->
        <DataTemplate>
            <Border  >
                <Grid HorizontalAlignment="Left" Width="150" Height="60" VerticalAlignment="Top" Cursor="Hand" MouseLeftButtonDown="Grid_OnMouseDownOrTouchDown" TouchDown="Grid_OnMouseDownOrTouchDown">
                    <Image x:Name="productLocImg" Width="150"  Source="{Binding SPImage}" Stretch="Fill"/>
                    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                        <Label Content="{Binding ProductName}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="18" Background="#99000000"/>
                        <Label Content="{Binding Avalability}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black" FontSize="14" Background="#90FFFFFF" FontWeight="Bold"/>
                    </StackPanel>
                </Grid>
            </Border>
        </DataTemplate>

        <!---->
    </ListBox.ItemTemplate>
<ListItem></ListItem>
<ListItem></ListItem>
<ListItem></ListItem>

</ListBox>

Upvotes: 0

Views: 481

Answers (1)

Mighty Badaboom
Mighty Badaboom

Reputation: 6155

Remove

productsLocLB.items.Clear()

and write instead (assuming your collection which is bound to the ItemsSourceis called MyItems and you want to set ProductName = string.Empty; for each entry in this collection.

foreach(var item in MyItems)
{
    ProductName = string.Empty;
}

You have to implement INotifyPropertyChanged as well or the UI won't be notized and the new values won't shown.

Upvotes: 1

Related Questions