首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin FreshMvvm简单绑定

Xamarin FreshMvvm简单绑定
EN

Stack Overflow用户
提问于 2017-10-10 02:59:25
回答 1查看 462关注 0票数 1

我有一个简单的问题。如何使用FreshMvvm框架访问页面模型中的.xaml文件中的输入值?我希望在settings.cs构造函数中设置的默认值是用户在输入字段中输入的值。

谢谢!

testpage.xaml:

代码语言:javascript
复制
<Label Text="Set Server Address (FreshMvvm Binding):" />
<Entry Text="{Binding Settings.SyncServiceAddress}" Placeholder="Server IP Address" />       
<Button Text="Sync Web Service - (FreshMvvm Binding)" Command="{Binding SyncButtonFreshMvvmBinding_Clicked}" />

testpagemodel.cs:

代码语言:javascript
复制
public override void Init(object initData)
{
    if (initData != null)
    {
        Settings = (Settings)initData;
    }
    else
    {
        Settings = new Settings(); 
    }
}

public Command SyncButtonFreshMvvmBinding_Clicked
{
    get
    {
        return new Command(async () =>
        {
            string serverAddress = Settings.SyncServiceAddress;
            SyncService.PullNewXMLData(serverAddress);
            await CoreMethods.PushPageModel<DashboardPageModel>();
        });
    }
}

settings.cs:

代码语言:javascript
复制
public class Settings : ObservableObject
{
    // Constructor
    public Settings()
    {
        // Default value
        SyncServiceAddress = "http://localhost/psm/service.aspx";
    }

    // Properties
    public string SyncServiceAddress { get; set; }
    public string UserIDSettings { get; set; }
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-13 06:00:00

记住,UI只需要知道一组有限的属性,所以可以在ViewModel中创建一个可绑定的属性,这样就不会试图绑定到嵌套属性。

在ViewModel中创建一个名为SyncServiceAddress的新字符串属性;

代码语言:javascript
复制
public string SyncServiceAddress
{
    get{
        return Settings.SyncServiceAddress;
    }
    set{
       Settings.SyncServiceAddress = value;
    }
}

然后将您的XAML更新为以下内容。

代码语言:javascript
复制
<Entry Text="{Binding SyncServiceAddress}" Placeholder="Server IP Address" /> 

这应该可以解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46653265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档