【问题标题】:Silverlight TextBlock Visibility property inital value before binding is applied应用绑定之前的 Silverlight TextBlock Visibility 属性初始值
【发布时间】:2010-12-27 15:06:40
【问题描述】:

我在 Silverlight 页面上有一个 TextBlock。

XAML

 <TextBlock Text="*"  x:Name="HasChangesTextBlock" Foreground="Red" FontSize="14" Visibility="{Binding Path=HasChanges, Converter={StaticResource BooleanToVisibilityConverter}}"
                           Margin="5,0,0,0">

 </TextBlock>

页面加载需要一些时间。在应用绑定之前,我希望 TextBlock 被折叠,但 Visibility 属性的默认值为 Visible。

有没有办法让 TextBlock 在绑定之前折叠?

【问题讨论】:

    标签: silverlight data-binding


    【解决方案1】:

    我找到了解决办法。

    我们应该在绑定表达式中添加 FallbackValue=Collapsed

    这是 Silverlight 4 中引入的一项重大更改。

    XAML

       <TextBlock Text="*"  x:Name="HasPlayListChangesTextBlock" Foreground="Red" FontSize="14" 
                                   Visibility="{Binding Path=HasChanges, Converter={StaticResource BooleanToVisibilityConverter},FallbackValue=Collapsed}">
    
       </TextBlock>
    

    【讨论】:

    • 这种变化在什么方面是“重大变化”?它只是对 SL4 的改进,我看​​不出此更改如何破坏任何现有代码?
    • 这正是我所需要的。谢谢你。我同意 AnthonyWJones 的观点,尽管这不是“重大变化”。
    【解决方案2】:

    在页面的构造函数中,调用 InitalizeComponent() 之后怎么样?像这样的:

    public MyClass() 
    {
      InitalizeComponent();
      HasChangesTextBlock.Visibility = Visiblility.Collapsed;
    }
    

    【讨论】:

    • 如果我们这样做,绑定将不起作用,因为它将被新值擦除。
    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多