2013-03-09 90 views
1

我創建了一個組合框在XAML這樣的:Combobox SelectedValue不起作用?

ComboBox x:Name="cbTest" SelectedValue="{Binding TestSpeed}" HorizontalAlignment="Left" Margin="0,10,0,0" Width="250" SelectionChanged="cbTest_SelectionChanged"/> 

而組合框充滿了以下項目:

 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不工作!?

+0

「我看到組合框中的項目,但它沒有顯示我選擇之前的SelectedValue。」 - 你是在代碼中還是在代碼屬性中選擇了它?你的意思是默認的'SelectedValue'? – Brian 2013-03-09 15:39:48

+0

嗨@布賴恩,綁定「SelectedValue =」{綁定TestSpeed「}應該得到」TestSpeed「屬性..當我選擇數字2,組合框說2,但是當我離開魅力和回報,然後它是空的..結合應該做的,是不是? – ExceptionGuy 2013-03-09 15:45:50

+0

你有沒有試圖改變在'_testSpeed'?含義抽象,宣佈爲「公共」而不是「私」? – Brian 2013-03-09 16:46:07

回答

0

在您的具體情況結合模式必須OneWayToSourceSelectedValue="{Binding Path=TestSpeed, Mode=OneWayToSource}。當TestSpeed是stringint即正常工作時,short - 不工作。我認爲你需要編寫特定的轉換器來使用short或使用int並且不用擔心

+0

您好,感謝您的答覆。我試圖使它一方式,並將其綁定像這樣: <組合框X:名稱= 「cbTest」 的SelectedValue = 「{綁定路徑= TestSpeed,模式=單向}」 的Horizo​​ntalAlignment = 「左」 保證金= 「0,10,0,0」 寬度=「250」的SelectionChanged =「cbTest_SelectionChanged」 /> 但它仍然沒有工作.. – ExceptionGuy 2013-03-09 22:28:34

+0

我試圖使它爲「int」和它的工作了。我想我需要寫一個轉換器,用於使用短ÿ ES。看來,這個網絡框架是不是最新的,我猜? – ExceptionGuy 2013-03-09 22:50:50

+0

我真的不知道,爲什麼短不默認轉換爲int或字符串=) – Frank59 2013-03-10 06:29:18

相關問題