Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我该如何编辑“文件”;ComboBoxItem";?_C#_Wpf_Mvvm_Combobox - Fatal编程技术网

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是否会触发它://

查看它是否会在您的属性更改时更新。。不确定它是否会在您的属性更改时看到是否更新。。不知道会不会