我正在开发一个PoS项目,并希望在打开窗口时让我的列表视图填充单个列表的内容,但我无法填写它。
我的单身课
public class Menu
{
private static Menu instance = new Menu();
public static Menu GetInstance()
{
return instance;
}
private List<Dish> menu = new List<Dish>();
public void AddDish(Dish dish)
{
menu.Add(dish);
}
}
列表视图的XAML
<ListView x:Name="lvMenu" Height="191" BorderThickness="1" BorderBrush="LightGray" Canvas.Left="228" Canvas.Top="12" Width="283">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Dish Name" Width="180" DisplayMemberBinding="{Binding Dish}" />
<GridViewColumn Header="Price" Width="50" DisplayMemberBinding="{Binding Price}" />
<GridViewColumn Header="Veg" Width="50" DisplayMemberBinding="{Binding Vegitarian}" />
</GridView>
</ListView.View>
</ListView>
我们非常感谢任何帮助,如果需要,我很乐意发布任何其他代码
答案 0 :(得分:1)
相应地更改课程:
public class Menu
{
private static Menu instance = new Menu();
public static Menu GetInstance()
{
return instance;
}
private List<Dish> menu = new List<Dish>();
public void AddDish(Dish dish)
{
menu.Add(dish);
}
public static Menu Instance
{
get { return instance; }
}
public List<Dish> MenuList
{
get { return menu; }
set { menu = value; }
}
}
添加这两个属性Instance
和MenuList
允许您在XAML中绑定它们。
将以下声明添加到Window,而不是SingletonBinding必须编写定义类菜单的命名空间:
xmlns:local="clr-namespace:SingletonBinding"
XAML中的绑定将如下所示:
<ListView x:Name="lvMenu" Height="191" BorderThickness="1" BorderBrush="LightGray" Canvas.Left="228" Canvas.Top="12" Width="283" ItemsSource="{Binding MenuList, Source={x:Static local:Menu.Instance}}">
MenuList
是返回Dishes列表的属性。
使用Source
,告诉XAML在哪里查找此属性,这指向您的静态类