WinUI:视图模型中的 PropertyChanged 处理程序为空

问题描述 投票:0回答:1

我有这个 win ui 主窗口,它分配一个视图模型并绑定到一个属性。文本最初从视图模型正确显示,但是当视图模型更新文本时,控件不会更新。我发现视图模型中 propertychanged 事件的事件处理程序始终为 null,因为 ui 没有订阅它。我在这里缺少什么?

public sealed partial class MainWindow : Window
{
    public MainWindow()
    {
        this.InitializeComponent();
        this.ViewModel = new AdventureViewModel();
    }

    public AdventureViewModel ViewModel { get; }
}

<Window
    x:Class="Adventure.WinUi.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Adventure.WinUi"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <StackPanel>
                 <TextBlock Text="{x:Bind ViewModel.Text}" />
    </StackPanel>
</Window>
xaml data-binding winui
1个回答
0
投票

ok我找到答案了,winui默认的绑定模式是OneTime,所以要可更新的时候我必须将其设置为OneWay:

   <TextBlock Text="{x:Bind ViewModel.Text, Mode=OneWay}" />
© www.soinside.com 2019 - 2024. All rights reserved.