我可以对弹出页面类本身定义的属性进行数据绑定吗?

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

我有一个弹出页面,我想从中返回一个值。所以在它的 c# 文件中,我的代码如下所示:

public partial class SelectDb : PopupPage
{
    TaskCompletionSource<string> taskCompSrc;
    public Task<string> PopupDismissed => taskCompSrc.Task;
    public string RetVal {  get; set; }

    public SelectDb(List<string> lst)
    {
       InitializeComponent();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        taskCompSrc = new TaskCompletionSource<string>();
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        taskCompSrc.SetResult(RetVal);
    }

在弹出屏幕的视图代码中,我有可以从视图模型调用命令的代码,如下所示:

            <Button Text="Select"
                WidthRequest="100"
                TextColor="White"
                Command="{Binding SetConnCommand}"/>

在 SetConn 方法中处理完成并关闭弹出屏幕。

那么是否有可能以某种方式将 RetVal 变量数据绑定到调用 SetConn 的视图模型,以便可以在弹出窗口关闭之前正确设置 RetVal?

c# xaml data-binding viewmodel
1个回答
0
投票

是的,通过将 RetVal 设置为 BindableProperty 并设置适当的绑定,您可以将其绑定到 ViewModel 的属性并在弹出窗口关闭之前正确设置它。

注意:确保您的 ViewModel 实现 INotifyPropertyChanged 以支持数据绑定,并且 RetVal 属性具有带有适当通知的 get 和 set 访问器。

© www.soinside.com 2019 - 2024. All rights reserved.