C# 我该如何编辑“文件”;ComboBoxItem";?
我的项目中有以下C# 我该如何编辑“文件”;ComboBoxItem";?,c#,wpf,mvvm,combobox,C#,Wpf,Mvvm,Combobox,我的项目中有以下组合框,但有一件事让我非常困扰,如果我这样写的话: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="170" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Label Content="Candidate" Margin
组合框
,但有一件事让我非常困扰,如果我这样写的话:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="170" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Content="Candidate" Margin="3" Foreground="White" Grid.Column="0"/>
<ComboBox ItemsSource="{Binding CandidateList, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Candidate, UpdateSourceTrigger=PropertyChanged}"
IsEditable="True" Margin="3" Grid.Column="1">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FirstName"/>
<Binding Path="SecondName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
因此,展开版本中的名称格式正确,但在组合框中显示不正确
是否有可能在xaml中实现这一点?以前有人问过这个问题
您可以向数据对象添加一个返回全名的属性,并将ComboBox的TextSearch.TextPath属性设置为此属性,或者尝试修改ComboBoxItem容器的ControlTemplate。请查看以上链接以了解更多信息。这个问题以前被问过
您可以向数据对象添加一个返回全名的属性,并将ComboBox的TextSearch.TextPath属性设置为此属性,或者尝试修改ComboBoxItem容器的ControlTemplate。请查看上面的链接以获取更多信息。这只是一个想法,但您可以通过添加带有getter的DisplayName属性(需要将OnPropertyChanged(“DisplayName”)添加到您的第一个/第二个名称设置器中)或重写ToString()来解决此问题,并在您想要显示此内容时不再需要使用转换器方法在您的候选类。基本上-
Override ToString()
{
return FirstName + " " + SecondName ;
}
实际上,我不确定如果更改值,OnPropertyChanged是否会触发它:/这只是一个想法,但是您可以解决这个问题,并且通过添加一个带有getter的DisplayName属性(需要添加OnPropertyChanged(“DisplayName”)来消除将来显示它时对转换器的需要或重写候选类上的ToString()方法。基本上-
Override ToString()
{
return FirstName + " " + SecondName ;
}
实际上,我不确定如果您更改了值,OnPropertyChanged是否会触发它://查看它是否会在您的属性更改时更新。。不确定它是否会在您的属性更改时看到是否更新。。不知道会不会