【问题标题】:Minimal binding TextBlock to property最小绑定 TextBlock 到属性
【发布时间】:2019-06-25 23:09:11
【问题描述】:

自从我在 XAML 中编写代码以来已经有一段时间了,并且在尝试更新旧应用程序时,我遇到了绑定问题。我剥离了所有内容以提出一个最小的示例。

这是我的 XAML 正文:

<Grid>
    <TextBlock Text="{Binding Path=PageTitle, ElementName=page, Mode=OneWay}"></TextBlock>
</Grid>

我后面的代码是这样的:

Public ReadOnly Property PageTitle As String
    Get
        Return "My page"
    End Get
End Property

我相信这是将此 TextBlock 内容绑定到其底层页面上的属性所需的最少代码(好的,不包括 Mode=OneWay part,因为我们正在谈论 TextBlock),但它不起作用,我来了加上一个空的 TextBlock。我的 PageTitle 属性的 Get 代码永远不会被调用。

我什至通过声明实现INotifyPropertyChanged

Public Event PropertyChanged As PropertyChangedEventHandler Implements  INotifyPropertyChanged.PropertyChanged

然后在我的OnNavigatedTo 代码中提高RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("PageTitle")),但无济于事。

那么,我在这里缺少什么简单的东西?

【问题讨论】:

    标签: vb.net xaml uwp


    【解决方案1】:

    你设置了PageName吗?

    但是,如果该属性是在视图的代码隐藏中定义的,您可以使用 x:Bind 而不设置 DataContext

    <TextBlock Text="{x:Bind PageTitle, Mode=OneWay}" />
    

    【讨论】:

    • 感谢您指出设置页面的名称。我将它定义为x:Name="Page", but I was referring to ElementName=page`,并且 XAML 是页面敏感的。当然x:Bind 也可以,在这个例子中是更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多