Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 使用主/详细模板在代码隐藏中绑定_Xamarin_Data Binding_Code Behind_Master Detail - Fatal编程技术网

Xamarin 使用主/详细模板在代码隐藏中绑定

Xamarin 使用主/详细模板在代码隐藏中绑定,xamarin,data-binding,code-behind,master-detail,Xamarin,Data Binding,Code Behind,Master Detail,我已经生成了一个Master/Detail view应用程序(通过Xamarin的Master Detail模板,Visual Studio 2019),我正在尝试以代码隐藏而不是详细视图中的XAML执行数据绑定,以便检索和显示“Description”条目: 因此,我修改了我的ItemDetailPage.xaml,如下所示(注释掉了该部分): 以便通过数据绑定显示“描述”条目。但是,除了在xaml文件中,我似乎无法访问相关的数据条目,这里是Models文件夹Items.cs中的“Descri

我已经生成了一个Master/Detail view应用程序(通过Xamarin的Master Detail模板,Visual Studio 2019),我正在尝试以代码隐藏而不是详细视图中的XAML执行数据绑定,以便检索和显示“Description”条目:

因此,我修改了我的ItemDetailPage.xaml,如下所示(注释掉了该部分):

以便通过数据绑定显示“描述”条目。但是,除了在xaml文件中,我似乎无法访问相关的数据条目,这里是Models文件夹Items.cs中的“Description”

namespace MDDummy2.Models
{
    public class Item
    {
        public string Id { get; set; }
        public string Text { get; set; }
        public string Description { get; set; }
    }
}
和MockDataStore.cs(我打算在详细视图中显示描述条目所在的位置)


如何访问数据字段,例如代码隐藏中的“Description”,以便在详细视图中显示它?非常感谢你的帮助

什么是ItemDetailViewModel?您可以通过
testLabel.BindingContext=new{Description=“{binding Item.Description}”设置标签文本绑定
我做了一个关于使用代码隐藏绑定的示例,您可以看看:

 public partial class Page8 : ContentPage
{
    private ItemDetailViewModel viewmodel;
        
    public Page8()
    {
        InitializeComponent();

        viewmodel = new ItemDetailViewModel()
        {
            item = new Item() { Id = "1", Text = "this is item1", Description = "item class description" },
            m1 = new model1() {Id="2",Text="this is model1",Description="model1 class description." }

        };
   
        var layout = new StackLayout
        {
            Spacing = 40,
            Padding = new Thickness(20, 20, 20, 20),
            Orientation = StackOrientation.Horizontal
        };

        var testLabel = new Label();

        testLabel.SetBinding(Label.TextProperty, new Binding("Description",source:viewmodel.item) );
        layout.Children.Add(testLabel);
        var testLabel1 = new Label();

        testLabel1.SetBinding(Label.TextProperty, new Binding("Description",source:viewmodel.m1));
        layout.Children.Add(testLabel1);

        Content = layout;
        this.BindingContext = viewmodel;
    }       
}

public class Item
{
    public string Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }
}
public class model1
{ 
    public string Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }
}

public class ItemDetailViewModel
{
    public Item item { get; set; }
    public model1 m1 { get; set; }
}

为什么要将标签的BindingContrText设置为匿名对象,而不是使用传递到ItemDetailPage的ViewModel?谢谢!我很快就会试试的,我会让你知道有什么更新吗?是的,成功了!非常感谢!我使用了:testLabel.SetBinding(Label.TextProperty,新绑定(“Description”,来源:viewModel.Item));
namespace MDDummy2.Models
{
    public class Item
    {
        public string Id { get; set; }
        public string Text { get; set; }
        public string Description { get; set; }
    }
}
 public partial class Page8 : ContentPage
{
    private ItemDetailViewModel viewmodel;
        
    public Page8()
    {
        InitializeComponent();

        viewmodel = new ItemDetailViewModel()
        {
            item = new Item() { Id = "1", Text = "this is item1", Description = "item class description" },
            m1 = new model1() {Id="2",Text="this is model1",Description="model1 class description." }

        };
   
        var layout = new StackLayout
        {
            Spacing = 40,
            Padding = new Thickness(20, 20, 20, 20),
            Orientation = StackOrientation.Horizontal
        };

        var testLabel = new Label();

        testLabel.SetBinding(Label.TextProperty, new Binding("Description",source:viewmodel.item) );
        layout.Children.Add(testLabel);
        var testLabel1 = new Label();

        testLabel1.SetBinding(Label.TextProperty, new Binding("Description",source:viewmodel.m1));
        layout.Children.Add(testLabel1);

        Content = layout;
        this.BindingContext = viewmodel;
    }       
}

public class Item
{
    public string Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }
}
public class model1
{ 
    public string Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }
}

public class ItemDetailViewModel
{
    public Item item { get; set; }
    public model1 m1 { get; set; }
}