2010-09-02 158 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");