首页 > 解决方案 > Xamarin xaml 绑定

问题描述

我正在尝试将我的 xaml 绑定到我的视图模型中的一个属性,但它没有按我的预期工作。

以下代码有效,但似乎创建了 mainwindowviewmodel 对象的新实例,这将导致问题。

<Label Text="{Binding Path=Test}" >
    <Label.BindingContext>
        <local:MainWindowViewModel />
    </Label.BindingContext>
</Label>

以下根本不起作用。

<Label Text="{Binding Path=Test}" >
</Label>

我的视图模型中有属性 Test 。

我究竟做错了什么?

标签: xamlxamarin

解决方案


确保将BindingContextView设置为模型的实例(MainWindowViewModel)以使第二个代码段工作。

例如在视图代码的构造函数中

public MainWindow() {
    InitializeComponents();
    var viewModel = new MainWindowViewModel();
    this.BindingContext = viewModel;
}

或者直接在视图中

<MainWindow.BindingContext>
    <local:MainWindowViewModel />
</MainWindow.BindingContext>

以上两者在技术上是等效的。


推荐阅读