2016-04-29 2 views
0

Я закодирован следующие ListBoxItemStyle, чтобы иметь возможность разместить несколько элементов в ListBoxItem:WPF ListboxItems с ItemContainerStyle стать неактивно

<Style x:Key="lbWithButton" TargetType="ListBoxItem"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListBoxItem"> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="10*" /> 
         <ColumnDefinition Width="3*" /> 
        </Grid.ColumnDefinitions> 
        <TextBlock Text="{TemplateBinding Content}" Grid.Column="0"/> 
        <xctk:IntegerUpDown Minimum="0" Value="0" Maximum="1000" Grid.Column="1"/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

К сожалению, я не могу больше выбора ListboxItems. Это также происходит только с текстовым блоком внутри listboxitem.

Помощь будет оценена!

+2

, вероятно, лучше Вы установили ItemTemplate вместо ItemContainerStyle. – Clemens

ответ

1

Вы должны использовать ItemTemplate вместо ItemContainerStyle:

<ListBox> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="10*" /> 
        <ColumnDefinition Width="3*" /> 
       </Grid.ColumnDefinitions> 
       <TextBlock Text="{Binding Content}" Grid.Column="0"/> 
       <xctk:IntegerUpDown Minimum="0" Value="0" Maximum="1000" Grid.Column="1"/> 
      </Grid>  
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+1

И @RambaZamba, причина, по которой ваш стиль не работает, заключается в том, что вы переопределяете шаблон управления по умолчанию. Он выбирается логически, но вы не визуально отражаете его в шаблоне управления. –

+0

Спасибо за ответ. Это работает только с связанным элементом ItemsSource, правильно? К сожалению, TextBlock Text = "{TemplateBinding Content}" пуст. Я могу выбрать элементы tho и показать IntegerUpDown. – RambaZamba

+0

@RambaZamba заменить TemplateBinding путем привязки – Amine