【问题标题】:Set element visibility by model value按模型值设置元素可见性
【发布时间】:2013-05-22 01:41:39
【问题描述】:

我想根据绑定设置 TextBox 元素的可见性。
例子: 具有两种产品价格值的文本框

<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding PriceProduct0, Mode=TwoWay}" />
<TextBox Grid.Column="2" Grid.Row="3" Text="{Binding PriceProduct1, Mode=TwoWay}" />

在我的模型中,我从 WCF 服务中查询必要的值并调用 NotifyPropertyChanged 来更新我的视图。
问题:在某些情况下,我的属性没有值。在这种情况下,我想隐藏 UI 元素。有没有简单的方法,比如引发事件?

大多数属性都是双精度或布尔值,所以我不能将它们设置为 NULL。

解决方案:
感谢 Ahmed 和 DHN,我找到了解决方案!
这里所有步骤:

  1. 将所有不可为空的属性更改为可空值,例如 public double? PriceProduct0
  2. 如果找不到命名空间,请添加对以下 .dll 的引用 Microsoft.TeamFoundation.Controls.WPF.Converters:
    &lt;VSHome&gt;\Common7\IDE\PrivateAssemblies\Microsoft.TeamFoundation.Controls.dll
  3. xmlns:myConverters="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls" 添加到&lt;Page&gt; 属性
  4. 添加 <Page.Resources>
    <myConverters:NullToVisibleConverter x:Key="NullToVisibleConverter" />
    </Page.Resources>
  5. 将以下可见性参数添加到&lt;TextBox&gt; 属性:
    Visibility="{Binding PriceProduct0, Converter={StaticResource NullToVisibleConverter}, ConverterParameter='invert' }"

【问题讨论】:

    标签: c# wpf binding visibility


    【解决方案1】:

    您可以使用 null 到可见性转换器。看到这个link

    <TextBox Text="{Binding PriceProduct0}" Visibility="{Binding PriceProduct0, Mode=TwoWay, Converter={StaticResource NullToVisibilityConverter}}"/>
    

    【讨论】:

    • 感谢 Ahmed 和 DHN,但我的属性大多是双精度或布尔值。因此我不能将它们设置为 NULL 或者我是否理解某事。错了吗?
    • 通过将它们更改为 Nullable 属性找到了解决方案(请参阅我的帖子)
    【解决方案2】:

    没有比这更容易的了。只需一个 NullToVisibleConverter 并将其绑定到 UI 元素的 Visibility 属性。例如

    <Window>
        <Window.Resources>
            <NullToVisibleConverter x:Key="Null2VisConv"/>
        </Window.Resources>
    <TextBox Visibility="{Binding PriceProduct0, Converter={StaticResource Null2VisConv}}" .../>
    </Window>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2016-07-12
      • 1970-01-01
      • 2011-09-02
      • 2013-06-23
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多