Как добавить двойки в список двойников из моего XAML - PullRequest
1 голос
/ 26 ноября 2010

Мне было интересно, как можно было бы легко добавить список двойников в список в моем классе 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 есть методПозвонил Цена:

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 Ответ

2 голосов
/ 26 ноября 2010

Вы не можете добавлять элементы в список или массив (насколько я знаю) с синтаксисом XAML, который вы используете в своих ценах.

Price = "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, следуйте тому же шаблону, который вы уже делаете.Тебе просто нужно было пойти на шаг дальше от своих цен.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...