2010-11-26 43 views
1

我想知道如何輕鬆地將雙打列表添加到我的FoodItem類中的列表中。如何將雙打添加到我的XAML中的雙打列表

我的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類有一個方法叫價:

public class FoodItem 
{ 
... 
List<double> prices = new List<double>(); 
... 

public List<double> Price 
     { 
      get { return prices; } 
      set 
      { 
       prices = value; 
      } 
     } 
... 
} 

不幸的是,我輸入的價格在我的XAML文件列表的方式是給我一個錯誤。但它正在編譯。

我得到的錯誤是:

型「System.Windows.Markup.XamlParseException」的第一次機會異常出現在PresentationFramework.dll

其他信息:「List`1」類型不有一個公共的TypeConverter類。第31行位置錯誤85

第31行是頂部的代碼。

感謝所有幫助:)

+1

你正在收到的錯誤 – TalentTuner 2010-11-26 05:12:35

回答

2

你不能將項目添加到列表或數組(據我所知)與正在使用你的價格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> 

如果你想要把FoodItemFoodItemCollection,遵循相同的模式,你已經在做。你只需要把它與價格放在一個更遠的位置。

希望這會有所幫助。

+0

很酷謝謝,虐待它試一試 – 2010-11-26 06:23:50