我有WPF应用程序并使用UserControl作为视图。在UserControl里面有DevExpress ComboBoxEdit。
<UserControl ...
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<dxe:ComboBoxEdit Name="ComboBoxInspectionList" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding InspectionList}" SelectedItem="{Binding SelectedInspection}" IsTextEditable="False"/>
</Grid>
</UserControl>
ComboBox是数据绑定的。我试过这个:
public partial class InspectionList : UserControl
{
public InspectionList()
{
InitializeComponent();
if (ComboBoxInspectionList.Items.Count > 0)
{
ComboBoxInspectionList.SelectedIndex = 0;
}
}
}
但是,在执行UserControl的构造函数中的代码之后发生了数据绑定。
答案 0 :(得分:0)
您是否只是在XAML标记中将SelectedIndex
属性设置为0?:
<dxe:ComboBoxEdit Name="ComboBoxInspectionList" SelectedIndex="0" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding InspectionList}" SelectedItem="{Binding SelectedInspection}" IsTextEditable="False"/>
MVVM这样做的方法是将SelectedInspection
属性设置为视图模型中InspectionList
中实际存在的对象,如@ 3615所示:
SelectedInspection = InspectionList.FirstOrDefault();
您显然无法选择Items
的{{1}}集合中不存在的项目。