C# 如何将Double添加到我的XAML中的Double列表中

C# 如何将Double添加到我的XAML中的Double列表中,c#,list,xaml,C#,List,Xaml,我想知道如何在我的FoodItem类中轻松地向列表中添加一个double列表 我的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:Fo

我想知道如何在我的FoodItem类中轻松地向列表中添加一个double列表

我的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;
            }
        }
...
}
公共类FoodItem
{
...
定价=新列表();
...
公开标价
{
获取{返回价格;}
设置
{
价格=价值;
}
}
...
}
不幸的是,我在XAML文件中输入价格列表的方式给了我一个错误。但它正在编译

我得到的错误是:

PresentationFramework.dll中首次出现类型为“System.Windows.Markup.XamlParseException”的异常

其他信息:“列表“1”类型没有公共TypeConverter类。第31行位置85处的错误

第31行是顶部的代码


感谢所有的帮助:)

您不能使用价格中使用的XAML语法将项目添加到列表或数组中(据我所知)

价格=“3.50,3.00,2.50”

当它试图在运行时将多个价格字符串转换(并分配)到列表中时,它抛出异常

这个小示例演示如何在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>

3.5
3
2.5
如果要将
FoodItem
放入
FoodItemCollection
,请遵循已经执行的相同模式。你只需要在价格上再进一步


希望这能有所帮助。

太酷了,谢谢,我试试看