C# 如何使用从WPF中的数据库获取的列表显示组合框的选择
我有一个组合框,其中ItemSource绑定到C# 如何使用从WPF中的数据库获取的列表显示组合框的选择,c#,wpf,C#,Wpf,我有一个组合框,其中ItemSource绑定到ESTADO列表,这是我项目中的一个实体。组合框如下所示: <ComboBox Style="{StaticResource ComboBoxStyle}" Visibility="{Binding EstadoComboBox}" Name="CatalogoEstados" DisplayMemberPath="NOMBRE" SelectedValuePath="NOMBRE" SelectedValue="{Binding Estado
ESTADO
列表,这是我项目中的一个实体。组合框如下所示:
<ComboBox Style="{StaticResource ComboBoxStyle}" Visibility="{Binding EstadoComboBox}" Name="CatalogoEstados" DisplayMemberPath="NOMBRE" SelectedValuePath="NOMBRE" SelectedValue="{Binding Estado}" ItemsSource="{Binding Estados}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SeleccionarEstadoCommand}" CommandParameter="{Binding ElementName=CatalogoEstados, Path=SelectedItem.ID}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
Estado = pplDatosGenerales.ESTADO;
pplDatosGenerales.ESTADO
是一个字符串,其字符串项以前在组合框中选择过,但当我从构造函数中分配变量时,组合框视图没有显示所选的项,变量分配正确,但在视图中组合框显示为空,好像我没有选择任何内容。为什么会发生这种情况?我该如何解决?我希望组合框显示变量Estado
的值。您需要发布更多代码。您已经将SelectedValuePath
设置为NOMBRE…如果NOMBRE是一个字符串,那么您的SelectedValue
类型也应该是一个字符串,但您将其绑定到名为Estado的视图模型属性?在这种情况下,Estado也应该是一个字符串,在构造函数中,您可以改为使用'Estado=pplDatosGenerales.Estado.NOMBRE'
我怀疑这里的问题只是
SelectedValuePath
设置。删除它,您可能会发现这一切都会按照您的意愿开始工作。之所以发生这种情况,是因为组合框ItemSource中没有Estado的值。调试项目后,我发现ItemSource中没有包含Estado的值。事实上,NOMBRE是一个字符串,我将从组合框中选择的项的字符串值指定给字符串变量Estado,并在构造函数中指定Estado的pplDatosGenerales.NOMBRE的值,该值也是一个字符串。我从控件中删除了SelectedValuePath,当我从构造函数中分配Estado时仍然显示null。SelectedValuePath用于将对象Estado的属性NOMBRE分配给变量Estado,而不是将所有对象分配为字符串,如“nameofProject.MODEL.Estado”,此时该字符串应该可以工作,您的Estado
属性是否支持INPC?只需创建一个包含“显示字符串”和“值”的模型,并将其绑定到组合框