2010-09-02 132 views
1

我正在使用WPF。 我正在使用visual studio 2010,.NET 4.0,並在我的應用程序中使用Radcombobox。 它正在使用3個字符串正確填充,現在我無法選擇默認值。我想在啓動加載組合框下拉菜單中的3個字符串時選擇第一個索引值作爲默認值。我如何以編程方式執行此操作?這應該在xaml還是在C#中完成?以編程方式在組合框中設置默認值

+0

你有什麼問題? XAML中的或代碼隱藏中的「myComboBox.SelectedIndex = 0」是否足夠好? – ASanch 2010-09-02 16:50:11

+0

如果您發送示例代碼,它會更容易確定,通常我在我的viewmodel中有一個選定的值屬性,它以編程方式設置。你在使用MVVM模式做這個嗎? – JoshVarga 2010-09-02 16:54:47

+0

這沒有奏效,所以我在這裏發佈了這個問題。我是WPF的新手,但是我在.NET 3.5的Windows窗體中做了類似的事情。我知道這不應該是這樣的問題,但它不起作用。 – zack 2010-09-02 16:55:02

回答

0

使用計數器。創建一個布爾變量並將其稱爲boolDefaultSet。它應該初始化爲默認值false。

大概你會用循環來輸出你選擇框的選項框......在那個循環裏寫一些邏輯來檢查boolDefaultSet是否爲true。如果不是,則打印選項框,其屬性爲「selected」,然後將boolDefaultSet設置爲true。下面是一些VB代碼,你可以在C#實現:

Dim boolDefaultSet as boolean
for i as integer = 0 to 2
    if boolDefaultSet then
        Response.Write("<option value="+myval+">"+myval+"</option>")
    else
        Response.Write("<option value="+myval+" selected>"+myval+"</option>")
        boolDefaultSet=true
next i

+0

我的意思是我真的需要這樣做?應該有一個屬性或RadComboBox的權利?不是很簡單嗎?我不知道爲什麼SelectedItem = 1在XAML的組合框標籤似乎沒有工作。或者在C#代碼中。 – zack 2010-09-02 17:35:35

+0

SelectedItem不起作用。嘗試SelectedIndex – GWLlosa 2010-09-03 13:34:11

0

如果從XAML設置的SelectedIndex不工作我會嘗試做它在C#代碼加載事件。

myName.SelectedIndex = 0;

+0

不會工作 – zack 2010-09-02 18:43:02

0

您不應該同時使用SelectedValue和SelectedIndex,因爲它經常會產生某種衝突。 我建議你從xaml中移除SelectedIndex =「0」,並設置你從代碼綁定你的SelectedValue的屬性。

例如:

MySelectedValue = MyItemsSource[0]; 
0

這更多的是一種MVVM答案:

綁定在XAML SelectedIndex屬性在您的視圖模型的屬性。

SelectedIndex="{Binding Path=SelectedIndex, Mode=TwoWay}" 

在您的視圖模型中,SelectedIndex的值設置爲1,然後調用PropertyChangeNotification這樣的看法知道更新(假設你的ViewModel實現INotifyPropertyChanged,大多數虛擬機實現使用一個基類來做到這一點)。

SelectedIndex = 1; 
NotifyPropertyChanged("SelectedIndex");