Невозможно связать значение со списком в wpf - PullRequest
1 голос
/ 12 июля 2010

У меня есть элемент управления, где находится combox. Я привязываю к нему свойства из modelview. Я могу привязывать свойства к текстовым полям, но не к списку. Значение из viewview равно 4. Кто-нибудь знает, почему это так?

<ComboBox  HorizontalAlignment="Left" VerticalAlignment="Top" SelectedItem="{Binding Path=QuantityOfStars}">

                                    <ComboBoxItem Content="0"></ComboBoxItem>

                                    <ComboBoxItem Content="1"></ComboBoxItem>

                                    <ComboBoxItem Content="2"></ComboBoxItem>

                                    <ComboBoxItem Content="3"></ComboBoxItem>

                                    <ComboBoxItem Content="4"></ComboBoxItem>

                                    <ComboBoxItem Content="5"></ComboBoxItem>

                               </ComboBox>


public int QuantityOfStars
        {
            get
            {
                return this.ReporterHotelDescription.QuantityOfStars;

            }
            set
            {
                this.ReporterHotelDescription.QuantityOfStars = value;
                NotifyChanged("QuantityOfStars");
            }
        }

1 Ответ

3 голосов
/ 12 июля 2010

Вы заполнили ComboBox с помощью ComboBoxItems, а не целых чисел, поэтому он не может преобразовать их в целое число для привязки к вашему свойству. Либо заполните ComboBox целыми числами вручную:

<ComboBox 
    HorizontalAlignment="Left" VerticalAlignment="Top" SelectedItem="{Binding Path=QuantityOfStars}"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:Int32>0</sys:Int32>
    <sys:Int32>1</sys:Int32>
    <sys:Int32>2</sys:Int32>
    <sys:Int32>3</sys:Int32>
    <sys:Int32>4</sys:Int32>
    <sys:Int32>5</sys:Int32>
</ComboBox>

Или, привяжите свойство ItemsSource в ComboBox к свойству в вашей ViewModel, которое является списком соответствующих целых чисел.

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