gpt4 book ai didi

c# - 如何将 View 绑定(bind)到 Xamarin.Forms 中的字典?

转载 作者:行者123 更新时间:2023-11-30 18:15:13 25 4
gpt4 key购买 nike

我有 View 和 ViewModel。在 ViewModel 中,我创建了一个动态表单(基于表单对象),这个“动态表单”是一个具有 N 个 View (如条目、选择器...)的 StackLayout。

假设,当用户点击提交按钮时,应用程序需要将表单中所有字段的信息存储在 Dictionary<string, object>() 中。 .

我有一个方法可以通过 StackLayout 并创建一个新的字典。我不太喜欢这种做法,我想做的是将 Stacklayout 的字段绑定(bind)到字典。

我创建一个字段,如下所示:

var entry = new 
Keyboard = Keyboard.Numeric,
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.CenterAndExpand
};

然后我:

stackLayout.Children.Add(entry);

为了设置正确的出价,我需要使用设置条目属性时的 BindingContext 属性还是应该使用 setBiding方法 ?

我在这里一无所知,可以使用一些指示。我在 stackoverflow 上进行了搜索,但没有找到我需要的内容。

编辑:添加我的 ViewModel 代码。

class FormViewModel : INotifyPropertyChanged
{
public ICommand RegisterCommand { get; set; }

private StackLayout _layout;

private Answer Answer;

private Dictionary<string, object> dictionary = new Dictionary<string, object>();


public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

public FormViewModel(Form form, StackLayout layout)
{
_layout = layout;

RegisterCommand = new Command(SaveForm);

}

public void SaveForm()
{
}

}

我删除了一些东西,但这是基本的想法。

最佳答案

您需要使用 ObservableDictionary并在更新、添加或删除的情况下观察事件。

关于c# - 如何将 View 绑定(bind)到 Xamarin.Forms 中的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com