组合框不反映初始对象值
本文关键字:对象 组合 | 更新日期: 2023-09-27 18:31:55
我有一个对象列表,网格内有几个字段。当 List( lvInvoices
) 中的对象被选中时,我更新网格 ( lyDetailForm
) 的数据绑定 :
private void lvInvoices_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int index = lvInvoices.SelectedIndex;
if (index != -1)
{
Invoice selectedInvoice = this.ListItems.ElementAt(index);
lyDetailForm.DataContext = selectedInvoice;
((PdfViewer)this.pdfControlHost.Child).File = selectedInvoice.SourceFile.FullName;
}
}
在lyDetailForms
中,我有几个控件。当我设置网格的数据上下文时,文本控件已正确更新。然而,组合框在我设置一次之前显示为白色;之后,当我更改所选项目时,它会正确更新。
<Grid Name="lyDetailForm" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="2" Grid.Row="1" Margin="10">
<TextBox Name="tbNif" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" Width="100" Margin="5" IsEnabled="{Binding SpId, Converter={x:Static local:SpSentToBooleanConverter.Instance}, ConverterParameter=NEGATE, FallbackValue=False}" Text="{Binding Nif,ValidatesOnExceptions=True,NotifyOnValidationError=True}" Validation.Error="OnEditBoxError"/>
<ComboBox Name="cbType" Grid.Column="1" Grid.Row="2" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Top" Width="100" IsEnabled="{Binding SpId, Converter={x:Static local:SpSentToBooleanConverter.Instance}, ConverterParameter=NEGATE, FallbackValue=False}" Text="{Binding Type, Mode=TwoWay} ItemsSource="{Binding Types}"/>
</Grid>
顺便说一下,Types
是来自同一 invoice
对象的静态属性,它返回一个字符串数组String[]
。组合框项是字符串。
有什么建议吗?提前谢谢。
您正在使用cbType
组合框作为文本框,这是错误的,请删除Text="{Binding Type, Mode=TwoWay}
绑定并将组合框选定项的绑定设置为类似SelectedItem={Binding SelectedType}
,其中SelectedType
表示当前选定的类型。