Имя типа отображается в раскрывающемся списке WPF - PullRequest
0 голосов
/ 21 декабря 2010

Я связываю List<SelectItem> с ComboBox, используя MVVM. Поле со списком имеет правильное значение и выглядит хорошо. Однако, когда я нажимаю кнопку «вниз», чтобы увидеть все параметры в выпадающем списке, я получаю список из 10 элементов, каждый из которых читается MyNamespace.SelectItem. Если я выберу # 2, значение в выпадающем списке будет выглядеть следующим образом: 2.

Вот код для SelectItem:

public class SelectItem
{
    public string Value { get; set; }
    public string Display { get; set; }
}

Мой XAML:

<ComboBox ItemsSource="{Binding Path=MyList}" DisplayMemberPath="Display" SelectedValue="{Binding Path=MyListValue, Mode=TwoWay}" />

И вот где я в очереди список SelectItems:

        MyList= new List<SelectItem>();
        for (int i = 1; i <= 10; i++)
        {
            var page = new SelectItem()
            {
                Display = i.ToString(),
                Value = i.ToString()
            };
            MyList.Add(page);
            if (i == 1)
                MyListValue = page;
        }

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

Проверка на любую опечатку.

С помощью следующего кода:

public class SelectItem
{
    public string Value { get; set; }
    public string Display { get; set; }
}

public class SelectItemViewModel
{
    public List<SelectItem> MyList { get; set; }
    public SelectItem MyListValue { get; set; }

    public SelectItemViewModel()
    {
        MyList = new List<SelectItem>();
        for (int i = 1; i <= 10; i++)
        {
            var page = new SelectItem()
            {
                Display = i.ToString(),
                Value = i.ToString()
            };
            MyList.Add(page);
            if (i == 1)
                MyListValue = page;
        }
    }
}

Инициализация:

public MainWindow()
{
    DataContext = new SelectItemViewModel();
}

XAML:

<ComboBox HorizontalAlignment="Center"
            VerticalAlignment="Center"
            ItemsSource="{Binding Path=MyList}"
            DisplayMemberPath="Display"
            SelectedValue="{Binding Path=MyListValue, Mode=TwoWay}" />

Iсмог увидеть цифры в ComboBox.Без имен типов.

0 голосов
/ 29 мая 2014

Если вы используете тему в своем приложении, и в вашем App.xaml есть что-то вроде

<ResourceDictionary Source="WhistlerBlue.xaml" />

, попробуйте переписать стиль элемента в поле со списком, добавив

<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ComboBox.ItemContainerStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...