如何使用Xamarin.Forms xaml编辑器预览列表视图
我正在Xamarin.Forms中使用自定义单元格实现ListView,但我看不到我在做什么,因为预览显示的是一个空列表,每次重新构建都很简单,太耗时了。我甚至看不到一个简单的文本单元格 如何在编辑器中查看单元格的预览?这是我的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:/
<?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;
}
}
}