簡體   English   中英

如何在Xamarin.Forms中將視圖綁定到Dictionary?

[英]How to bind views to a Dictionary in Xamarin.Forms?

我有View和ViewModel。 在ViewModel中,我創建了一個動態表單(基於表單對象),這個“動態表單”是一個具有N個視圖的StackLayout(如條目,選擇器......)。

可以說,當用戶點擊提交按鈕時,應用程序需要將表單中字段的所有信息存儲在Dictionary<string, object>()

我有一個方法可以通過StackLayout並創建一個新的Dictionary。 我不太喜歡這個aprouch,我想要做的是將Stacklayout的字段綁定到Dictionary。

我創建了一個字段,如下所示:

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

然后我:

stackLayout.Children.Add(entry);

為了設置正確的biding,我是否需要在設置條目屬性時使用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並在更新,添加或刪除時監視事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM