簡體   English   中英

在WPF中使用DataTrigger設置Grid.Column

[英]Setting Grid.Column using DataTrigger in WPF

我正在嘗試使用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>

Grid.ColumnSpan工作正常,但Grid.Column沒有設置。 有任何想法嗎?

列表框的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>

這可能與依賴屬性值優先級有關 您可能顯式設置ColumnColumnSpan使用默認值1。

暫無
暫無

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

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