/ / Nie można powiązać wartości z combobox w wpf - c #, wpf, xaml

Nie można powiązać wartości z combobox w wpf - c #, wpf, xaml

Mam kontrolę, gdzie jest combox. Wiążę z tym właściwości z widoku modelu. Mogę wiązać właściwości z polami tekstowymi, ale nie z combobox. Wartość z widoku modelu wynosi 4. Czy ktoś wie, dlaczego tak jest?

<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");
}
}

Odpowiedzi:

3 dla odpowiedzi № 1

Wypełniłeś swój ComboBox ComboBoxItems, a nie liczbami całkowitymi, więc nie może przekonwertować ich na liczby całkowite w celu powiązania z twoją właściwością. Wypełnij ComboBox liczbami całkowitymi ręcznie:

<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>

Lub zwiąż ItemsSource właściwość w ComboBox do właściwości w ViewModel, która jest listą odpowiednich liczb całkowitych.