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
如何使用Xamarin.Forms xaml编辑器预览列表视图_Xaml_Xamarin_Xamarin.forms_Visual Studio 2017 - Fatal编程技术网

如何使用Xamarin.Forms xaml编辑器预览列表视图

如何使用Xamarin.Forms xaml编辑器预览列表视图,xaml,xamarin,xamarin.forms,visual-studio-2017,Xaml,Xamarin,Xamarin.forms,Visual Studio 2017,我正在Xamarin.Forms中使用自定义单元格实现ListView,但我看不到我在做什么,因为预览显示的是一个空列表,每次重新构建都很简单,太耗时了。我甚至看不到一个简单的文本单元格 如何在编辑器中查看单元格的预览?这是我的xaml: <?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http:/

我正在Xamarin.Forms中使用自定义单元格实现ListView,但我看不到我在做什么,因为预览显示的是一个空列表,每次重新构建都很简单,太耗时了。我甚至看不到一个简单的文本单元格

如何在编辑器中查看单元格的预览?这是我的xaml:

<?xml version="1.0" encoding="utf-8"?>
<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:MyNamespace"
    x:Class="MyNamespace.MyAppPage">
<ContentPage.Content>

    <ListView x:Name="myList">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextCell Text="Preview?" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

</ContentPage.Content>
结果是XAML编辑器引发以下错误:

未找到local:MusicSeed.Model的静态成员


我尝试将
曲目
更改为静态,但没有任何更改。同时重新生成解决方案时,错误消失,但预览仍然为空。我在这里错过了什么?

你不能。如果您使用的是MVVM框架,那么仍然需要生成/构建代码

另一种选择是使用它,它可以在您的实际设备上为android和ios创建列表


仅供参考:目前,在回答这个问题时,它位于Alpha上,您必须为设计期间要呈现的行提供某种类型的
BindingContext
。詹姆斯·蒙特马诺的一篇文章解释了如何做到这一点

建议参考的另一条是

编辑1:

您的XAML是正确的,但视图模型是错误的。只能绑定到属性。尝试将您的声明更改为以下内容:

namespace MyNamespace
{
    public class MusicSeed
    {
        public static MusicSeedModel Model { get; } = new MusicSeedModel();
    }

    public class MusicSeedModel
    {
        public MusicTrack[] Tracks { get; } =
            {
                new MusicTrack("Track 01"),
                new MusicTrack("Track 02"),
                new MusicTrack("Track 03"),
                new MusicTrack("Track 04"),
            };
    }

    public class MusicTrack
    {
        public string Name { get; }

        public MusicTrack(string v)
        {
            this.Name = v;
        }
    }
}

本文似乎是针对Xamarin Studio的,但问题是关于Visual Studio的。这对VS也有效吗?根据这一点,它确实有效。@dennis schröer:另外,
Visual Studio for Mac
只是
Xamarin Studio
@G.Sharada的更新版本。我添加了你的建议,但仍然不起作用,很可能我遗漏了什么。如果你想看的话,我编辑了这个问题。谢谢!使用您的解决方案后的重要一步是重新构建所有解决方案!
namespace MyNamespace
{
    public static class MusicSeed
    {
        public static readonly MusicSeedModel Model = new MusicSeedModel();  
    }

    public class MusicSeedModel
    {
        public readonly MusicTrack[] Tracks =
        {
            new MusicTrack("Track 01"),
            new MusicTrack("Track 02"),
            new MusicTrack("Track 03"),
            new MusicTrack("Track 04"),
        }; 
    }
}
namespace MyNamespace
{
    public class MusicSeed
    {
        public static MusicSeedModel Model { get; } = new MusicSeedModel();
    }

    public class MusicSeedModel
    {
        public MusicTrack[] Tracks { get; } =
            {
                new MusicTrack("Track 01"),
                new MusicTrack("Track 02"),
                new MusicTrack("Track 03"),
                new MusicTrack("Track 04"),
            };
    }

    public class MusicTrack
    {
        public string Name { get; }

        public MusicTrack(string v)
        {
            this.Name = v;
        }
    }
}