我想知道如何轻松地将一个双打列表添加到我的FoodItem类中的列表中。
我的XAML:
<src:FoodItemCollection x:Key="Drinks">
<src:FoodItem Name="Fountain" ImagePath="Resources\drinks_fountain.png" Price="2.50,2.00,1.50"></src:FoodItem>
<src:FoodItem Name="Popcan" ImagePath="Resources\drinks_popcan.png" Price="1.50"></src:FoodItem>
<src:FoodItem Name="Bottle" ImagePath="Resources\drinks_bottle.png" Price="2.00"></src:FoodItem>
<src:FoodItem Name="Slushy" ImagePath="Resources\drinks_slushy.png" Price="3.50,3.00,2.50"></src:FoodItem>
</src:FoodItemCollection>
我的FoodItem类有一个名为Price的方法:
public class FoodItem
{
...
List<double> prices = new List<double>();
...
public List<double> Price
{
get { return prices; }
set
{
prices = value;
}
}
...
}
不幸的是,我输入XAML文件中的价格列表的方式给了我一个错误。但它正在编译。
我得到的错误是:
PresentationFramework.dll中出现'System.Windows.Markup.XamlParseException'类型的第一次机会异常
附加信息:'List`1'类型没有公共TypeConverter类。 31号线位置错误85
第31行是顶部的代码。
感谢所有帮助:)
答案 0 :(得分:2)
您无法使用价格中使用的XAML语法将项目添加到列表或数组(据我所知)。
价格= “3.50,3.00,2.50”
当它试图在运行时将多个价格字符串转换(并分配)到List中时,它会抛出异常。
这个小例子向您展示了如何在Xaml中为数组添加值:
<Window x:Class="XamlTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly:mscorlib"
xmlns:src="clr-namespace:MyTestXaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<src:FoodItem x:Key="Drinks">
<src:FoodItem.Prices>
<sys:Double>3.5</sys:Double>
<sys:Double>3.0</sys:Double>
<sys:Double>2.5</sys:Double>
</src:FoodItem.Prices>
</src:FoodItem>
</Grid.Resources>
<ListBox DataContext="{StaticResource Drinks}"
ItemsSource={Binding Prices}/>
</Grid>
</Window>
如果您想将FoodItem
放入FoodItemCollection
,请按照您已经在做的相同模式进行操作。你只需要更进一步了解价格。
希望这有帮助。