简体   繁体   English

在WPF中使用DataTrigger设置Grid.Column

[英]Setting Grid.Column using DataTrigger in WPF

I am trying to set the Grid.Column property using a datatrigger: 我正在尝试使用datatrigger设置Grid.Column属性:

<Style TargetType="ListBox">
    <Style.Triggers>
        <DataTrigger Binding="{Binding View}" Value="HistoryLeft">
            <Setter Property="Visibility" Value="Hidden"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding View}" Value="HistoryRight">
            <Setter Property="Grid.Column" Value="0"/>
            <Setter Property="Grid.ColumnSpan" Value="2"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

The Grid.ColumnSpan works fine but the Grid.Column does not set. Grid.ColumnSpan工作正常,但Grid.Column没有设置。 Any ideas? 有任何想法吗?

The XAML for the Listbox is: 列表框的XAML是:

          <ListBox ItemsSource="{Binding HistoryItemsRight}" BorderThickness="0,1,0,0" Grid.Row="0" Grid.Column="1"  ItemsPanel="{StaticResource NoHorizontalScroll}" Background="White" ScrollViewer.VerticalScrollBarVisibility="Visible" 
                 HorizontalContentAlignment="Stretch"   ItemContainerStyle="{StaticResource HistoryItem}"
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                    <ListBox.Style>
                        <Style TargetType="ListBox">
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding View}" Value="HistoryLeft">
                                    <Setter Property="Visibility" Value="Hidden"/>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding View}" Value="HistoryRight">
                                    <Setter Property="Grid.Column" Value="0"/>
                                    <Setter Property="Grid.ColumnSpan" Value="2"/>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </ListBox.Style>
                    <ListBox.Resources>
                        <ResourceDictionary>
                            <ResourceDictionary.MergedDictionaries>
                                <ResourceDictionary Source="/Resources/HistoryViewTemplates.xaml"/>
                                <ResourceDictionary>
                                    <DataTemplate DataType="{x:Type viewModel:HistoryItemView}">
                                        <Grid Style="{StaticResource HistoryItemGrid}">
                                            <Grid.ToolTip>
                                                <controls:HistoryViewToolTip></controls:HistoryViewToolTip>
                                            </Grid.ToolTip>
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="30" MinWidth="30"/>
                                                <ColumnDefinition Width="60" MinWidth="50"/>
                                                <ColumnDefinition Width="250*" MinWidth="100"/>
                                            </Grid.ColumnDefinitions >
                                            <TextBlock  Text="{Binding Date, StringFormat=' HH:mm:ss'}" Grid.Column="1"/>
                                            <TextBlock  Text="{Binding Path}" Grid.Column="2" HorizontalAlignment="Stretch"/>
                                            <Button FontWeight="Bold" Padding="2,0,2,0" Margin="0,0,2,0" Width="19" Command="{Binding OperationToRight}" Grid.Column="0" Style="{StaticResource RightSideHistoryButton}" />
                                        </Grid>
                                    </DataTemplate>
                                </ResourceDictionary>
                            </ResourceDictionary.MergedDictionaries>
                        </ResourceDictionary>
                    </ListBox.Resources>
                </ListBox>

This might have to do with Dependency Property Value Precedence . 这可能与依赖属性值优先级有关 You probably set the Column explicitly while the ColumnSpan uses the default value of one. 您可能显式设置ColumnColumnSpan使用默认值1。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM