我有一个列表<版本>,其中版本等具有属性版本UUID、标签、SKU 和 IsSelected。我想将它绑定到一个 Combobox 并让所选项目只选择 IsSelected 标志(未选择任何先前设置的标志)。
注意:组合框在模板中,在数据网格单元格内使用,所以我不能只将 SelectedItem 绑定到模型!
到目前为止我正在工作,数据网格按预期更新数据库,但是初始值未设置 onLoad。如果一个版本已经有 IsSelected=true,我希望它显示在 Combobox 中,但它始终为空,除非我从列表中选择一个。
<DataTemplate x:Key="dtDatagridVersionSelector">
<ComboBox Margin="0" Width="90" Style="{StaticResource DatagridComboBox}"
ItemsSource="{Binding Path=Versions, Mode=OneTime}">
<ComboBox.ItemTemplate >
<DataTemplate >
<RadioButton Focusable="false" IsEnabled="true"
GroupName="{Binding VersionUUID}"
IsChecked="{Binding IsSelected, Mode=TwoWay}">
<StackPanel Orientation="Horizontal" >
<TextBlock Margin="3,0,0,0" Text="{Binding Label}"/>
<TextBlock Foreground="Red" Margin="3,0,0,0"
Text="{Binding SKU}"/>
</StackPanel>
</RadioButton>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsSelected"
Value="{Binding IsSelected, Mode=OneWay}" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
</DataTemplate>
另外,Radiobox的使用也不是一成不变的,如果有更好的解决方案来实现这一点所以只有一个项目被选中,我都愿意接受
感谢任何指针安德烈亚斯