在WPF组合框中将第一项设置为选定项
本文关键字:一项 设置 组合 WPF | 更新日期: 2023-09-27 18:10:12
我试图将组合框中的第一个项目设置为默认选择的项目。但是下面的代码不能工作:
<ComboBox HorizontalAlignment="Left" x:Name="cbxPrograms" Grid.Column="2" Grid.Row="1"
VerticalAlignment="Top" Width="270" Height="28" IsSynchronizedWithCurrentItem="True"
SelectedIndex="0"
ItemsSource= "{Binding Path=ProgramCodeSource, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True,
NotifyOnValidationError=True}"
SelectedItem="{Binding ProgramCode, Mode=TwoWay}">
如果您有一个名为ProgramCodeSource
的集合属性和一个名为ProgramCode
的集合属性,其类型与集合中的项相同…:
<ComboBox ItemsSource="{Binding ProgramCodeSource}"
SelectedItem="{Binding ProgramCode, Mode=TwoWay}" ... />
…然后,您可以从具有属性的类中选择ComboBox
中的第一个项目,只需像这样使用LinQ
:
ProgramCode = ProgramCodeSource.FirstOrDefault();
你可以在你初始化你的数据之后做:
ProgramCodeSource = new ObservableCollection<YourDataType>(GetData());
ProgramCode = ProgramCodeSource.FirstOrDefault();
使用FirstOrDefault
方法是好的,因为如果GetData()
方法不返回任何值,则不会有错误。
我不知道你的视图模型是什么样子的,但是你的SelectedItem需要被设置为列表中类型的一个实例。
<ComboBox
HorizontalAlignment="Left"
x:Name="cbxPrograms"
Grid.Column="2"
Grid.Row="1"
VerticalAlignment="Top"
Width="270"
Height="28"
SelectedIndex="0"
IsSynchronizedWithCurrentItem="True"
ItemsSource= "
{Binding Path=EntityCollectionSource,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
NotifyOnValidationError=True}"
SelectedItem="{Binding Entity,Mode=TwoWay}">
try use SelectedValue="{Binding ProgramCode, Mode= two - way}"