c# –ContentView Xamarin Forms

c# –ContentView Xamarin Forms,第1张

概述我一般还在学习XamarinForms和C#.所以在我的MainPage.xaml中我有这个:<StackLayout><ButtonText="bttn1"Clicked="Button_Clicked"/><ButtonText="bttn2"Clicked="Button_Clicked_1"/><Co

我一般还在学习Xamarin Forms和C#.所以在我的MainPage.xaml中我有这个:

    <StackLayout>        <button Text="bttn1" Clicked="button_Clicked"/>        <button Text="bttn2" Clicked="button_Clicked_1"/>        <ContentVIEw x:name="displayCustomContentVIEw">        </ContentVIEw>    </StackLayout>

和两个ContentVIEws:

查看1:

public class VIEw1 : ContentVIEw{    public VIEw1 ()    {        Content = new StackLayout {            Children = {                new Label { Text = "VIEw 1" },                new Entry {Placeholder = "entry1 VIEw 1"},                new Entry {Placeholder = "entry2 VIEw 1"}            }        };    }}

观点2:

public class VIEw2 : ContentVIEw{    public VIEw2 ()    {        Content = new StackLayout {            Children = {                new Label { Text = "VIEw 2" },                new Entry {Placeholder = "entry2 VIEw 1"},                new Entry {Placeholder = "entry2 VIEw 2"}            }        };    }}

所以当我点击按钮时,我想在视图之间切换.我试过这个:

   private voID button_Clicked(object sender, EventArgs e)    {        displayCustomContentVIEw = new VIEw1();    }

我怎样才能从Entry字段中获取值?

我大多肯定我做得不对.我可以使用我能得到的所有帮助!

解决方法:

回答你的问题:

And how can i get the values from the Entry fIElds?

有简单的答案和不那么简单的答案.

简单的答案,因为你在C#(而不是XAML)中构建VIEw1和VIEw2,就是存储对Entry对象的引用:

public class VIEw1 : ContentVIEw{    public Entry Entry1 { get; private set; }    public Entry Entry2 { get; private set; }    public VIEw1 ()    {        Entry1 = new Entry { Placeholder = "entry1 VIEw 1" };        Entry2 = new Entry { Placeholder = "entry1 VIEw 2" };        Content = new StackLayout {            Children = {                new Label { Text = "VIEw 1" },                Entry1,                Entry2            }        };    }}

然后,在某些按钮回调或Command(或程序获得控制时),您可以查看Entry1.Text和Entry2.Text属性以查看用户输入的内容.

现在就不那么简单的方式,MVVM和模型绑定.虽然代码涉及更多,但它是一种非常流行的编写Xamarin.Forms应用程序的方法,因为它使您能够更好地将视图代码与其余逻辑分开.这有助于分离应用程序中的问题,以提高可测试性,可维护性等.您可以使用Xamarin内置功能执行此 *** 作,但是很多人喜欢使用各种MVVM包来进一步支持MVVM原则.

为了使用VIEw1(仅使用内置的Xamarin.Forms功能)进行简单说明,您还可以创建一个VIEw1viewmodel类,如下所示:

public class VIEw1viewmodel{    public string Entry1 { get; set; }    public string Entry2 { get; set; }}public class VIEw1 : ContentVIEw{    public VIEw1viewmodel viewmodel { get; private set; }    public VIEw1 ()    {        viewmodel = BindingContext = new VIEw1viewmodel();        var entry1 = new Entry { Placeholder = "entry1 VIEw 1" };        var entry2 = new Entry { Placeholder = "entry1 VIEw 2" };        entry1.SetBinding(Entry.TextProperty, "Entry1");        entry2.SetBinding(Entry.TextProperty, "Entry2");        Content = new StackLayout {            Children = {                new Label { Text = "VIEw 1" },                entry1,                entry2            }        };    }}

在此模型中,不是直接查看底层UI元素(Entry对象)上的属性,而是其他代码可以查看视图模型,因为当条目的值更改时,这些属性会自动更新.

虽然这个示例代码随着模型绑定的增加而变得更大,但在使用XAML时它往往更简洁一些.

当然还有MVVM的其他方面(INotifyPropertyChanged等),我鼓励你学习更多,但这有点超出原始问题的范围.

总结

以上是内存溢出为你收集整理的c# – ContentView Xamarin Forms全部内容,希望文章能够帮你解决c# – ContentView Xamarin Forms所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存