【问题标题】:WPF Datatrigger Visibility + Null ValueWPF 数据触发器可见性 + 空值
【发布时间】:2011-07-25 09:06:36
【问题描述】:

我是 WPF 的初学者。 当数据绑定值等于 Null 时,我想在 Radiobutton 上将 Visibility 设置为 Hidden。 我正在使用 WPF 工具包。 这是我的代码,但它不起作用:

    <dg:DataGrid x:Name="dtGrdData" HorizontalScrollBarVisibility="Hidden" SelectionMode="Extended" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False" AutoGenerateColumns="False"
                 RowHeaderWidth="0" RowHeight="50" >
        <DataTrigger Binding="{Binding P_DAY_PRICE}" Value="{x:Null}">
            <Setter Property="RadioButton.Visibility" Value="Hidden"></Setter>
        </DataTrigger>
        <dg:DataGrid.Columns>
            <dg:DataGridTemplateColumn Header="1 day" Width="1.5*" >
                <dg:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <RadioButton x:Name="rdBtnDayPrice" GroupName="grpNmPrice" Content="{Binding Path=P_DAY_PRICE}" Style="{StaticResource toggleStyle}" Checked="RadioButton_Checked"></RadioButton>
                    </DataTemplate>
                </dg:DataGridTemplateColumn.CellTemplate>
            </dg:DataGridTemplateColumn>
        </dg:DataGrid.Columns>
    </dg:DataGrid>

你能帮帮我吗? 谢谢

【问题讨论】:

  • 会发生什么? P_DAY_PRICE 是多少? P_DAY_PRICE 是 DG 数据上下文的成员吗?您没有向我们提供足够的信息来帮助您。
  • P_DAY_PRICE 是我数据表中的一个字段。我用storedProcedure的结果填充了dtGrdData.ItemsSource
  • 数据触发器将使用当前的DataContext 而不是ItemsSource 中的数据。您可能需要正确配置网格的 DataContext。

标签: c# wpf wpftoolkit datatrigger


【解决方案1】:

将您的DataTrigger 移近您的RadionButton

<RadioButton ...>
    <RadioButton.Style>
        <Style TargetType="RadioButton">
            <Style.Triggers>
                <DataTrigger Binding="{Binding P_DAY_PRICE}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Hidden"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </RadioButton.Style>
</RadioButton>

【讨论】:

    【解决方案2】:

    我建议您直接在 RadioButton 上设置绑定并使用 Binding 对象的“TargetNullValue”属性。

    <RadioButton x:Name="rdBtnDayPrice" Visibility={Binding Path=P_DAY_PRICE, TargetNullValue=Hidden, Converter=...} GroupName="grpNmPrice" Content="{Binding Path=P_DAY_PRICE}" Style="{StaticResource toggleStyle}" Checked="RadioButton_Checked" 
    

    您需要一个转换器来将“P_DAY_PRICE”值转换为可见性枚举值,这应该可以完成这项工作。

    丽安娜

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      相关资源
      最近更新 更多