我有一个控件,其中是combox。我从modelview绑定它的属性。我可以将属性绑定到文本框,但不能绑定到组合框。来自modelview的价值是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");
}
}
答案 0 :(得分:3)
您使用ComboBoxItems填充ComboBox,而不是整数,因此无法将它们转换为整数以绑定到您的属性。用手动填充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>
或者,将ComboBox上的ItemsSource
属性绑定到ViewModel中的属性,该属性是相应整数的列表。