我正在研究 WPF。我正在使用 Visual Studio 2010、.NET 4.0 并在我的应用程序中使用 Radcombobox。它正确地填充了 3 个字符串,现在我无法选择默认值。我想选择第一个索引值作为默认值,当它启动加载组合框下拉列表中的 3 个字符串时。我如何以编程方式执行此操作?这应该在 xaml 中还是在 C# 中完成?
4 回答
您不应该同时使用 SelectedValue 和 SelectedIndex,因为它经常会产生一种冲突。我建议您从 xaml 中删除 SelectedIndex="0" 并设置您从代码中绑定 SelectedValue 的属性。
例子:
MySelectedValue = MyItemsSource[0];
这更像是一个 MVVM 答案:
将 XAML 中的 SelectedIndex 属性绑定到 ViewModel 上的属性。
SelectedIndex="{Binding Path=SelectedIndex, Mode=TwoWay}"
在您的 ViewModel 中,将 SelectedIndex 值设置为 1,然后调用 PropertyChangeNotification 以便视图知道要更新(假设您的 ViewModel 实现了 INotifyPropertyChanged,并且大多数 VM 实现使用基类来执行此操作)。
SelectedIndex = 1;
NotifyPropertyChanged("SelectedIndex");
使用计数器。创建一个布尔变量并将其命名为 boolDefaultSet。它应该使用默认值 false 进行初始化。
大概您会使用循环来输出选择框的选项框...在该循环中编写一些逻辑来检查 boolDefaultSet 是否为真。如果不是,则打印带有“已选择”属性的选项框,然后将 boolDefaultSet 设置为 true。下面是一些可以在 C# 中实现的 vb 代码:
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;