【问题标题】:Wpf DataGridTextColumn With Element Style And ReadOnly具有元素样式和只读的 Wpf DataGridTextColumn
【发布时间】:2015-10-22 09:14:18
【问题描述】:

我需要根据触发器禁用对特定列的编辑,但不起作用。

<DataGridTextColumn Binding="{Binding Qty,UpdateSourceTrigger=PropertyChanged}" Header="QTY" Width="100">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment"  Value="Right"></Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding ItemType}" Value="Discount">
                                    <Setter Property="IsEnabled" Value="False"></Setter>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

【问题讨论】:

    标签: wpf datagridtextcolumn


    【解决方案1】:

    添加这个:

    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="TextBox">
            <Setter Property="HorizontalAlignment"  Value="Right"></Setter>
            <Style.Triggers>
                <DataTrigger Binding="{Binding ItemType}" Value="Discount">
                    <Setter Property="IsEnabled" Value="False"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
    

    【讨论】:

    • 当我尝试编辑单元格 'TextBlock' TargetType 与元素 'TextBox' 的类型不匹配时抛出异常。
    • 现在水平对齐不起作用,只有在我编辑单元格时才起作用。当您离开单元格时,对齐方式设置为向左而不是向右,这就是我之前将 Element 样式设置为 TextBlock 的原因。我也尝试了水平内容对齐,但仍然没有。
    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2021-12-14
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多