c# - 如何添加默认组合框 "--Select user--"

标签 c# wpf xaml mvvm

我正在使用 MVVM 模式开发 WPF 应用程序,我有一个组合框,其中 itemssource 与 viewmodel 绑定(bind),我想在组合框中有一个默认选项,如“--Select user--”,最好的方法是什么。
这是我的 XAML 代码:

<ComboBox Grid.Column="1" HorizontalAlignment="Left" Margin="5.2,8.2,0,7.8" Grid.Row="5" Width="340" ItemsSource="{Binding Path=Users}" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding SelectedUser}" Grid.ColumnSpan="2">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock>
                        <TextBlock.Text>
                            <MultiBinding StringFormat="{}{0} {1}">
                                <Binding Path="FirstName"/>
                                <Binding Path="LastName"/>
                            </MultiBinding>
                        </TextBlock.Text>
                    </TextBlock>
                </DataTemplate>
            </ComboBox.ItemTemplate>
</ComboBox>

最佳答案

那么另一种方法可以是有一个触发器并让组合框项保持原样

<Grid>
    <ComboBox x:Name="mycombo" ItemsSource="{Binding}"/>
    <TextBlock Text="-- Select User --" IsHitTestVisible="False" Visibility="Hidden">
           <TextBlock.Style>
                <Style TargetType="TextBlock">
                      <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=mycombo,Path=SelectedItem}" Value="{x:Null}">
                                  <Setter Property="Visibility" Value="Visible"/>
                             </DataTrigger>
                      </Style.Triggers>
                </Style>
           </TextBlock.Style>
     </TextBlock>
</Grid>

或者,如果您有能力将组合框的外观更改为可编辑的组合框,您可以这样做——
<ComboBox IsEditable="True" IsReadOnly="True" Text="-- Select User --" />

关于c# - 如何添加默认组合框 "--Select user--",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961274/

相关文章:

c# - WPF 同步 ListBox 项目的大小

.net - 是否有一个很好的工具可以在运行时调试 XAML 的数据绑定(bind)行为/错误?

c# - 以编程方式在代码隐藏中添加视觉状态 setter

c# - WPF 可选曲线

c# - EWS 创建约会以换取额外的自定义属性

c# - 扩展 Visual Studio 2012 HTML IntelliSense

wpf - WPF 中的 NumericUpDown 等效项很好吗?

c# - 组合框中输入字符串的格式不正确

c# - 如何加载未净化的 XML?

wpf - 将形状添加到 Canvas 。如何绑定(bind)到虚拟机