Как стилизовать ListViewItem с ControlTemplate? - PullRequest
0 голосов
/ 17 ноября 2018

Я новичок в WPF, и весь этот мир связывания и стилей довольно запутанный.

Я создал копию ControlTemplate по умолчанию для ListViewItem:

<Window.Resources>
    <ControlTemplate x:Key="ListViewItemControlTemplate1" TargetType="{x:Type ListViewItem}">
        ...
    </ControlTemplate>
</Window.Resources>

Затем яесть столбцы в моем ListView, например:

<ListView x:Name="lstFiles">
    <ListView.View>
        <GridView>
            <GridViewColumn x:Name="clmName" Header="Name" DisplayMemberBinding="{Binding Name}" />
        </GridView>
    </ListView.View>
</ListView>

Если я добавлю новый элемент в Designer, я могу легко применить этот ControlTemplate:

<ListViewItem Content="ListViewItem1" Template="{DynamicResource ListViewItemControlTemplate1}"/>

Но как мне использовать этот шаблон, когдаэлементы привязываются к ListView из кода, используя lstFiles.ItemsSource?

1 Ответ

0 голосов
/ 18 ноября 2018

Я думаю, вы хотели бы переопределить стиль для своего списка.от: Как переопределить стиль ListViewItem?

<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignListBoxItem}">
    <Style.Resources>
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" />
    </Style.Resources>
    <EventSetter Event="PreviewMouseLeftButtonDown"
                 Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>

...