将列表框绑定到数据库表

时间:2015-11-27 18:54:15

标签: c# wpf entity-framework linq xaml

我正在寻找一个WPF应用程序。我使用Entity Framework Code First创建了数据库,现在我想在我的GUI中使用我的数据库。 我在Double.toString(fade);

中有一个列表框

XAML

xaml

然后我试图在表格中查询我的数据:

XAML.cs

<Window.Resources>
        <DataTemplate x:Key="lstDishesTemplate">
            <StackPanel>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path = Dishes.Description}" FontWeight="Bold"/>
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
<ListBox x:Name="lstDishes" Height="415" VerticalAlignment="Bottom" Margin="0,0,1032,42" HorizontalAlignment="Right" Width="281" ItemTemplate="{StaticResource lstDishesTemplate}" Background="#FFDDC9B0" BorderBrush="{x:Null}"/>

我得到了一个例外:

  

EntityFramework.SqlServer.dll中出现未处理的“System.Reflection.TargetInvocationException”类型异常

     

附加信息:呼叫目的地(已翻译)产生的异常。

更新

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    public PizzeriaDBContext db = new PizzeriaDBContext();

    var dish = db.Dishes.ToList();
    lstDishes.ItemsSource = dish;
}

ANSWER

分析完整异常,似乎类构造函数不能有参数。

1 个答案:

答案 0 :(得分:0)

起初:

内部异常表示您的错误:

  

消息=班级&#39; Cw2.Dish&#39;没有无参数构造函数。
  源=的EntityFramework

所以你需要纠正你的构造函数。如果您显示课程,则可以修复错误。

编辑的第二步:

您应该更正DataTemplate Text属性中的绑定路径:

<TextBlock Text="{Binding Path = Description}" FontWeight="Bold"/>

因为Dishes.Description课程中没有此类属性Dish