2010-11-26 3 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

whcih error вы получаете – 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> 

Если вы хотите положить FoodItem в FoodItemCollection, по той же схеме, что вы уже делаете. Вам просто нужно было сделать шаг дальше от ваших цен.

Надеюсь, это поможет.

+0

Прохладный Спасибо, плохо дайте ему попробовать – 2010-11-26 06:23:50

Смежные вопросы