【发布时间】:2013-03-10 00:51:00
【问题描述】:
我在 xaml 中创建了一个组合框,如下所示:
ComboBox x:Name="cbTest" SelectedValue="{Binding TestSpeed}" HorizontalAlignment="Left" Margin="0,10,0,0" Width="250" SelectionChanged="cbTest_SelectionChanged"/>
Combobox 中填充了以下项目:
for (int i = 1; i < 6; i++)
cbTest.Items.Add(i);
我看到组合框中的项目,但它没有显示我之前选择的 SelectedValue。这是属性:
private short _testSpeed;
public short TestSpeed
{
get
{
return _testSpeed;
}
set
{
_testSpeed= value;
NotifyPropertyChanged();
}
}
这是我在 SelectedChanged 上更改项目的时候
_vm.TestSpeed = (short)Convert.ToInt16(cbTest.SelectedValue);
TestSpeed 在调试中为我提供了正确的数据,但 selectedValue 绑定不起作用!?
【问题讨论】:
-
"我看到组合框中的项目,但它没有显示我之前选择的 SelectedValue。" - 您是在代码中还是在代码的属性中选择它?您是指默认的“SelectedValue”吗?
-
嗨@Brian,绑定“SelectedValue="{Binding TestSpeed"} 应该获得“TestSpeed”属性。当我选择数字 2 时,组合框显示 2,但是当我离开魅力和return 然后它又是空的。绑定应该这样做,不是吗?
-
您是否尝试过更改
_testSpeed的抽象?意思是,将其声明为“公共”而不是“私有”?
标签: c# combobox microsoft-metro