簡體   English   中英

ListBoxItem中的DataTrigger邊框

[英]DataTrigger Border in a ListBoxItem

我正在嘗試更改ListBoxItem的backgroundcolor和borderbrush顏色。

<Window x:Class="Application1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:PE2_WPF_Jelle_Vandekerckhove"
    Title="MainResolutions" Height="500" Width="300" ResizeMode="NoResize" Closed="Window_Closed">
<Window.Resources>

    <Style TargetType="Border">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=Resafgehandeld}" Value="True">
                <Setter Property="Background" Value="LightGreen" />
                <Setter Property="BorderBrush" Value="DarkGreen" />
            </DataTrigger>
        </Style.Triggers>
    </Style>



</Window.Resources>
<StackPanel Orientation="Vertical" Background="Aquamarine">
    <TextBlock Text="Mijn Resolutions voor het jaar 2015" Margin="5" Background="White" />
    <ListBox Name="lstResolutions" Height="160">
        <ListBox.ItemTemplate>
            <DataTemplate>

                <Border Name="Rand" BorderBrush="Black" BorderThickness="2" Padding="5" Margin="5" CornerRadius="10" Width="240">

                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="Resolutie : "/>
                        <TextBlock Grid.Column="1" Text="{Binding Resitem}"/>
                        <TextBlock Grid.Row="1" Grid.Column="0" Text="Deadline : "/>
                        <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Resdeadline}" />
                        <TextBlock Grid.Row="2" Grid.Column="0" Text="Reden :" />
                        <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Resopmerking}" />
                    </Grid>

                </Border>
            </DataTemplate>

        </ListBox.ItemTemplate>

    </ListBox>

我嘗試使用<Style TargetType="ListBoxItem">而不是<Style TargetType="Border">起作用了,但這不是我想要的,我希望更改該listboxitem的Border背景,但我似乎無法訪問它。 任何幫助,將不勝感激。

它不起作用,因為您在屬性中對BorderBrush硬編碼,這是優先的。 更新以使樣式不是資源,然后將“ Trigger添加到“ Border本身。

<Window x:Class="Application1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:PE2_WPF_Jelle_Vandekerckhove"
    Title="MainResolutions" Height="500" Width="300" ResizeMode="NoResize" Closed="Window_Closed">
<StackPanel Orientation="Vertical" Background="Aquamarine">
    <TextBlock Text="Mijn Resolutions voor het jaar 2015" Margin="5" Background="White" />
    <ListBox Name="lstResolutions" Height="160">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Border Name="Rand" BorderThickness="2" Padding="5" Margin="5" CornerRadius="10" Width="240">
                    <Border.Style>
                        <Style TargetType="Border">
                            <Setter Property="BorderBrush" Value="Black" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Path=Resafgehandeld}" Value="True">
                                    <Setter Property="Background" Value="LightGreen" />
                                    <Setter Property="BorderBrush" Value="DarkGreen" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="Resolutie : "/>
                        <TextBlock Grid.Column="1" Text="{Binding Resitem}"/>
                        <TextBlock Grid.Row="1" Grid.Column="0" Text="Deadline : "/>
                        <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Resdeadline}" />
                        <TextBlock Grid.Row="2" Grid.Column="0" Text="Reden :" />
                        <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Resopmerking}" />
                    </Grid>
                </Border>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</StackPanel>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM