ListView没有绑定

时间:2015-01-23 22:10:53

标签: c# xaml xamarin

当我运行应用程序时,我得到两个标签(我使用标签页)但它们是空白的。

我有一个有点复杂的ViewModel:

        public partial class NowPlayingView
{
    const string NowPlayingUrl = "http://api.myserver.com";
    public static List<MoviesItem> MoviesLst { get; set; }

    public NowPlayingView()
    {
        InitializeComponent();
        BindingContext = new MoviesViewModel();
    }
    public class MoviesViewModel
    {
        public MoviesViewModel()
        {
            Action<Dictionary<string, string>> initAction = initialize;
            initAction(new Dictionary<string, string>()
                {
                    {"$format", "json"},
                    {"AccessKey", "f54tg5gf54g-fgs3452-324asdf4"},
                    {"CineplexLanguage", "en-us"}
                });
        }

        public async void initialize(Dictionary<string,string> parameters)
        {
            var data = await (new ApiUtilities().CallGetData<MoviesNowPlaying>(NowPlayingUrl, "/api.svc/MoviesNowPlaying", parameters));
            MoviesLst = data.d.results.Select(x => new MoviesItem() {Header = x.Title, Text = x.MediumPosterImageURL}).ToList();
        }
    }
    public class MoviesItem
    {
        public string Header { get; set; }
        public string Text { get; set; }
    }
}

我的XAML文件如下所示:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                       x:Class="XamPlex.MainCategories.NowPlayingView"
             Title="Now Playing">
    <ListView x:Name="MoviesListView" RowHeight="80" BackgroundColor="Transparent" ItemsSource="{Binding MoviesLst}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <ViewCell.View>
                        <StackLayout Orientation="Vertical" Spacing="0" Padding="10">
                            <Label Font="Bold,20" Text="{Binding Header}" TextColor="Indigo"/>
                            <Label Font="16" Text="{Binding Text}" TextColor="Indigo"/>
                        </StackLayout>
                    </ViewCell.View>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ContentPage>

我查看了MoviesLst的内容,它包含大量数据,任何想法都可能出错?

1 个答案:

答案 0 :(得分:0)

我没有做很多MVC,但我相信View应该有这样的形式:

public ActionResult Index() {
    return View();
}

我认为你的View应该像......一样......

public ActionResult Index() {
    var data = await (new ApiUtilities().CallGetData<MoviesNowPlaying>(NowPlayingUrl, "/api.svc/MoviesNowPlaying", parameters));
    var list = data.d.results.Select(x => new MoviesItem() {Header = x.Title, Text = x.MediumPosterImageURL}).ToList();
    return View(list);
}

但是,我只是完成了MVC的基础教程。我可能会误解你的模特。

我无法在任何地方看到您发布视图的位置。我所看到的似乎是模型。

相关问题