如何将双打添加到我的XAML的双打列表中

时间:2010-11-26 05:09:33

标签: c# list xaml

我想知道如何轻松地将一个双打列表添加到我的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行是顶部的代码。

感谢所有帮助:)

1 个答案:

答案 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,请按照您已经在做的相同模式进行操作。你只需要更进一步了解价格。

希望这有帮助。