Wpf 当SelectedItem为空时,如何使用DataTemplate设置Combobox的文本属性?

Wpf 当SelectedItem为空时,如何使用DataTemplate设置Combobox的文本属性?,wpf,xaml,combobox,Wpf,Xaml,Combobox,以下代码一直有效,直到我尝试在SelectedInsurance为null时可视化“-请选择保险--”: <Style x:Key="PrimaryInsuranceStyle" TargetType="{x:Type ComboBox}"> <Setter Property="Height" Value="36" /> <Style.Triggers> <DataTrig

以下代码一直有效,直到我尝试在SelectedInsurance为null时可视化“-请选择保险--”:

 <Style x:Key="PrimaryInsuranceStyle" TargetType="{x:Type ComboBox}">
            <Setter Property="Height" Value="36" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=PrimaryInsurance.SelectedInsurance}" Value="{x:Null}">
                    <Setter Property="Text" Value="-- Please Select Insurance --" />
                </DataTrigger>
            </Style.Triggers>
        </Style>

  <DataTemplate x:Key="InsuranceTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="20" />
                    <!--Company Name-->
                    <ColumnDefinition Width="220" />
                    <!--Effective Date From-->
                    <ColumnDefinition Width="56" />
                    <ColumnDefinition Width="16" />
                    <!--Effective Date To-->
                    <ColumnDefinition Width="56" />
                    <!--Empty space-->
                    <ColumnDefinition Width="14" />
                    <!--Insurance Type-->
                    <ColumnDefinition Width="100" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding XNotInEffect}"      Grid.Column="0" />
                <TextBlock Text="{Binding CompanyName}"       Grid.Column="1"/>
                <TextBlock Text="{Binding EffectiveDateFrom}" Grid.Column="2" TextAlignment="Center" />
                <TextBlock Text="--" Grid.Column="3" TextAlignment="Center" />
                <TextBlock Text="{Binding EffectiveDateTo}"   Grid.Column="4" TextAlignment="Center" />
                <TextBlock Text="{Binding PolicyType}"        Grid.Column="6" />
            </Grid>
        </DataTemplate>



<ComboBox 
            Style="{StaticResource PrimaryInsuranceStyle}"
            HorizontalAlignment="Left" Margin="590,51,0,0" VerticalAlignment="Top" Width="510" 
            IsEnabled="{Binding PrimaryInsurance.CanPickInsurance}"
            ItemsSource="{Binding PrimaryInsurance.AllPatientInsurance}" 
            ItemTemplate="{StaticResource InsuranceTemplate}"
            SelectedItem="{Binding PrimaryInsurance.SelectedInsurance}"
            />

当selectedItem具有DataTemplate且selectedItem为空时,如何设置Combobox的Text属性

注意:可视化文本为空


TIA

你不能轻易做到这一点。设置
Text
不会在组合框上显示任何内容,除非
IsEditable
设置为
true
。我猜在您的例子中,
IsEditable
应该是false(默认情况下)。通常情况下,当没有任何内容被下拉时,您在组合框中看到的几乎是
SelectionBoxItem
。但是,当
SelectedItem
为空时,我们无法访问
SelectionBoxItem
,以通过一种黑客方式(使用带有一些触发器的
ItemTemplate
)更改其模板。您应该通过复制一些示例模板来重新设置组合框的模板,改为对其进行修改。@听到这个消息真是太遗憾了……谢谢:(