Note that there are some explanatory texts on larger screens.

plurals
  1. POWpf Listbox and Togglebutton
    primarykey
    data
    text
    <p>Hi iam using a listbox to show a list of items. in the listbox i ahve an togglebutton on every item. When i click on the toggle button the state of the togglebutton is pressed. But when i am scrolling down in the listbox and scolls up again. The togglebutton state is not pressed. How can i prevent this please help.</p> <p>Heres my itemtemplate</p> <pre><code>&lt;ListBox.ItemTemplate&gt; &lt;DataTemplate&gt; &lt;StackPanel Margin="0,3,0,0"&gt; &lt;Border BorderBrush="Black" BorderThickness="1,1,1,1"&gt; &lt;Border.Background&gt; &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0" MappingMode="RelativeToBoundingBox"&gt; &lt;GradientStop Color="#FFECECEC" Offset="1"/&gt; &lt;GradientStop Color="#FFE8E8E8"/&gt; &lt;GradientStop Color="#FFBDBDBD" Offset="0.153"/&gt; &lt;GradientStop Color="#FFE8E8E8" Offset="0.904"/&gt; &lt;/LinearGradientBrush&gt; &lt;/Border.Background&gt; &lt;Border.Style&gt; &lt;Style&gt; &lt;Style.Triggers&gt; &lt;DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}}}" Value="True"&gt; &lt;Setter Property="Border.Height" Value="100"/&gt; &lt;Setter Property="Border.Background"&gt; &lt;Setter.Value&gt; &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0" MappingMode="RelativeToBoundingBox"&gt; &lt;GradientStop Color="DarkGray" Offset="1"/&gt; &lt;GradientStop Color="#FFE8E8E8"/&gt; &lt;GradientStop Color="#FFBDBDBD" Offset="0.153"/&gt; &lt;GradientStop Color="DarkGray" Offset="0.904"/&gt; &lt;/LinearGradientBrush&gt; &lt;/Setter.Value&gt; &lt;/Setter&gt; &lt;/DataTrigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/Border.Style&gt; &lt;StackPanel Orientation="Horizontal" VerticalAlignment="Center"&gt; &lt;Grid&gt; &lt;Grid.ColumnDefinitions&gt; &lt;ColumnDefinition Width="500"/&gt; &lt;ColumnDefinition Width="100"/&gt; &lt;ColumnDefinition Width="55"/&gt; &lt;/Grid.ColumnDefinitions&gt; &lt;!--Pick number--&gt; &lt;StackPanel Grid.Column="0" VerticalAlignment="Center" Orientation="Vertical"&gt; &lt;TextBlock Text="{Binding Path=FtgNamn}" FontWeight="Bold" FontSize="22pt" FontFamily="Calibri"/&gt; &lt;TextBlock Text="{Binding Path=LevsAttBeskr}" FontSize="18pt" FontFamily="Calibri"/&gt; &lt;/StackPanel&gt; &lt;!--Pick Quantity--&gt; &lt;StackPanel Grid.Column="1" VerticalAlignment="Center"&gt; &lt;TextBlock Text="{Binding Path=Antal}" FontSize="44pt" FontFamily="Calibri"/&gt; &lt;/StackPanel&gt; &lt;!-- Checkbox--&gt; &lt;StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"&gt; &lt;ToggleButton Name="Check" Width="40" Height="40" Click="Check_Click" Tag="{Binding Path=Plocklista}"&gt; &lt;ToggleButton.Style&gt; &lt;Style TargetType="ToggleButton"&gt; &lt;Setter Property="Template"&gt; &lt;Setter.Value&gt; &lt;ControlTemplate TargetType="{x:Type ToggleButton}"&gt; &lt;Border x:Name="InnerBorder" Background="White" BorderBrush="Black" BorderThickness="1"/&gt; &lt;ControlTemplate.Triggers&gt; &lt;Trigger Property="IsChecked" Value="True"&gt; &lt;Setter TargetName="InnerBorder" Property="Background"&gt; &lt;Setter.Value&gt; &lt;ImageBrush ImageSource="/Images/button_ok.png"/&gt; &lt;/Setter.Value&gt; &lt;/Setter&gt; &lt;Setter TargetName="InnerBorder" Property="BorderThickness" Value="0"/&gt; &lt;/Trigger&gt; &lt;/ControlTemplate.Triggers&gt; &lt;/ControlTemplate&gt; &lt;/Setter.Value&gt; &lt;/Setter&gt; &lt;/Style&gt; &lt;/ToggleButton.Style&gt; &lt;/ToggleButton&gt; &lt;/StackPanel&gt; &lt;/Grid&gt; &lt;Border BorderBrush="Darkgray" BorderThickness="0,0,1,0"&gt; &lt;/Border&gt; &lt;TextBlock Width="100" Text="{Binding Path=Quantity}" FontSize="44pt" FontFamily="Calibri"/&gt; &lt;CheckBox Width="78"/&gt; &lt;/StackPanel&gt; &lt;/Border&gt; &lt;/StackPanel&gt; &lt;/DataTemplate&gt; </code></pre> <p></p> <p>Heres the binding code</p> <pre><code> delegate void FillPickHeaderDelegate(PickHeaderDoc[] pickHeaderDocs); private void FillPickList(PickHeaderDoc[] pickHeaderDoc) { if(lbAllPickAssignments.Dispatcher.CheckAccess()) { lbAllPickAssignments.ItemsSource = pickHeaderDoc; lbAllPickAssignments.UnselectAll(); } else { lbAllPickAssignments.Dispatcher.Invoke(new FillPickHeaderDelegate(FillPickList), new object[] { pickHeaderDoc }); } } </code></pre> <p>And heres the Click event</p> <pre><code> private void Check_Click(object sender, RoutedEventArgs e) { ToggleButton btn = (ToggleButton) sender; if(btn.IsChecked.Value == true) { m_checkedList.Add(Convert.ToInt32(btn.Tag)); } else { m_checkedList.Remove(Convert.ToInt32(btn.Tag)); } txtblockPickCount.Text = m_checkedList.Count.ToString(); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload