以编程方式在组合框中设置默认值
我正在使用WPF。 我正在使用visual studio 2010,.NET 4.0,并在我的应用程序中使用Radcombobox。 它正在使用3个字符串正确填充,现在我无法选择默认值。我想在启动加载组合框下拉菜单中的3个字符串时选择第一个索引值作为默认值。我如何以编程方式执行此操作?这应该在xaml还是在C#中完成?以编程方式在组合框中设置默认值
使用计数器。创建一个布尔变量并将其称为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
如果从XAML设置的SelectedIndex不工作我会尝试做它在C#代码加载事件。
myName.SelectedIndex = 0;
不会工作 – zack 2010-09-02 18:43:02
您不应该同时使用SelectedValue和SelectedIndex,因为它经常会产生某种冲突。 我建议你从xaml中移除SelectedIndex =“0”,并设置你从代码绑定你的SelectedValue的属性。
例如:
MySelectedValue = MyItemsSource[0];
这更多的是一种MVVM答案:
绑定在XAML SelectedIndex属性在您的视图模型的属性。
SelectedIndex="{Binding Path=SelectedIndex, Mode=TwoWay}"
在您的视图模型中,SelectedIndex的值设置为1,然后调用PropertyChangeNotification这样的看法知道更新(假设你的ViewModel实现INotifyPropertyChanged,大多数虚拟机实现使用一个基类来做到这一点)。
SelectedIndex = 1;
NotifyPropertyChanged("SelectedIndex");
你有什么问题? XAML中的或代码隐藏中的“myComboBox.SelectedIndex = 0”是否足够好? –
ASanch
2010-09-02 16:50:11
如果您发送示例代码,它会更容易确定,通常我在我的viewmodel中有一个选定的值属性,它以编程方式设置。你在使用MVVM模式做这个吗? – JoshVarga 2010-09-02 16:54:47
这没有奏效,所以我在这里发布了这个问题。我是WPF的新手,但是我在.NET 3.5的Windows窗体中做了类似的事情。我知道这不应该是这样的问题,但它不起作用。 – zack 2010-09-02 16:55:02