windows 8 app,obserablecollection viewmodel给出了xaml错误:没有这样的表

时间:2013-03-19 13:45:53

标签: c# xaml windows-8 viewmodel observablecollection

您好我在xaml中从集合视图模型绑定数据时遇到问题。

但数据绑定失败,VisualStudio报告错误“没有这样的表:食谱” 任何人都可以帮我解决这个问题吗?

XAML:     

<Page.DataContext>
    <vm:RecipeListViewModel />
</Page.DataContext>

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <ListView Header="Recipes" x:Name="RecipeList" HorizontalAlignment="Left" Height="512" Margin="156,118,0,0" VerticalAlignment="Top" Width="430" DataContext="{Binding Recipes[0].Recipe_Name}" ItemsSource="{Binding RecipeCollection.Recipe}"  />

    <Image x:Name="Img" HorizontalAlignment="Left" Height="260" Margin="698,116,0,0" VerticalAlignment="Top" Width="462"/>
    <Button Content="Button" HorizontalAlignment="Left" Margin="698,420,0,0" VerticalAlignment="Top" Click="Button_Click_1"/>


</Grid>

RecipeListViewModel

    class RecipeListViewModel : INotifyPropertyChanged
{
    ObservableCollection<Recipe> _Recipes;
    public ObservableCollection<Recipe> Recipes
    {
        get { return _Recipes; }
        set 
        {
            if (_Recipes != value)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("Recipes"));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged = delegate { };

    public RecipeListViewModel()
    {

        _Recipes = new ObservableCollection<Recipe>();

        var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "LCHFData.db");
        using (var db = new SQLite.SQLiteConnection(dbPath))
        {
            var tb = db.Table<Recipe>().ToList<Recipe>();
            foreach (Recipe recipe in tb)
            {
                _Recipes.Add(recipe);
            }
        }

    }
}

RecipeViewModel:

 class RecipeViewModel : INotifyPropertyChanged{

    /*
     *   Class to Display whole recipe object
     */
    Recipe _Recipe;
    public Recipe Recipe 
    { 
        set 
        {
            if (_Recipe != value)
            {
                _Recipe = value;
                PropertyChanged(this, new PropertyChangedEventArgs("Recipe"));
            }
        }
        get { return new Recipe() { Recipe_Name = "boo "}; } 
    }

    public event PropertyChangedEventHandler PropertyChanged = delegate { };
}

0 个答案:

没有答案