Я хочу изменить стиль списка в зависимости от коллекции, которую я использую. В моем коде первый класс имеет коллекцию TypeAItemViewModel
. Коллекция будет иметь 1 элемент, который нельзя выбрать (предположим как заголовок), и для этого я буду использовать IsHitTestVisible
.Как определить стиль для списка в зависимости от коллекции?
Но другой класс использует коллекцию NormalParameter
s, которая не имеет IsHitTestVisible
. Затем, когда я использую представление с коллекцией NormalParameter
, он дает мне ошибку без свойства IsHitTestVisible
.
public List<NormalParameters> Items{get;set;}
public List<TypeAItemViewModel> Items;
Класс: TypeAItemViewModel
public class TypeAItemViewModel
{
private TypeAParameter _parameter;
public bool IsHitTestVisible{get;set;}
}
стиль:
<Style x:Key="SelectableListBoxItem" TargetType="{x:Type ListBoxItem}">
<Setter Property="IsHitTestVisible" Value="{Binding IsHitTestVisible}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsHitTestVisible}" Value="false">
<Setter Property="FontWeight" Value="SemiBold" />
<Setter Property="FontSize" Value="{StaticResource FontSizeTextBlock}" />
</DataTrigger>
</Style.Triggers>
</Style>
ListBox: (работа штрафы с коллекцией TypeAItemViewModel)
<ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" ItemContainerStyle="{DynamicResource SelectableListBoxItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="{StaticResource Height}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock DataContext="{Binding Name}" Text="{Binding Value}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я думал, что это должно работать с ItemContainerStyle, но я до сих пор не могу его решить.
если не ясно, сообщите.
Редактировать: У меня есть 2 коллекции. Я хочу отобразить их в другом стиле с помощью 1 xaml listbox. Редактировать: Listbox, который я использую, является usercontrol
Как я понимаю, вы хотите добавить 1 пункт TypeAItemViewModel перечислить, а коллекции NormalParameters? –
Нет. У меня есть 2 коллекции. Я хочу отобразить их в другом стиле с помощью 1 xaml listbox. – user3089631
В то же время? –