相关疑难解决方法(0)

为什么我不能在ComboBox中选择空值?

在WPF中,似乎无法从ComboBox中选择(使用鼠标)"null"值.编辑为了澄清,这是.NET 3.5 SP1.

这是一些显示我的意思的代码.首先,C#声明:

public class Foo
{
    public Bar Bar { get; set; }
}

public class Bar 
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

接下来,我的Window1 XAML:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <StackPanel>
        <ComboBox x:Name="bars" 
                  DisplayMemberPath="Name" 
                  Height="21" 
                  SelectedItem="{Binding Bar}"
                  />
    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

最后,我的Window1类:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        bars.ItemsSource = new ObservableCollection<Bar> 
        {
            null, 
            new Bar { Name = "Hello" }, 
            new Bar { Name = "World" …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf combobox

42
推荐指数
5
解决办法
3万
查看次数

WPF:带重置项的ComboBox

我想在WPF中创建一个null顶部有一个项目的ComboBox,当选中此项时,SelectedItem应设置为null(重置为默认状态).我一直在搜索,但没有找到令人满意的解决方案.

如果可能的话,我希望它只使用XAML代码或附加行为,因为我不喜欢在ViewModel中更改View或覆盖标准控件.

这是我到目前为止提出的(缩短代码):

[...]
<Popup x:Name="PART_Popup" [...]>
    <Border x:Name="PopupBorder" [...]>
        <ScrollViewer x:Name="DropDownScrollViewer" [...]>
            <StackPanel [...]>
                <ComboBoxItem>(None)</ComboBoxItem>
                <ItemsPresenter x:Name="ItemsPresenter"/>
            </StackPanel>
        </ScrollViewer>
    </Border>
</Popup>
[...]
Run Code Online (Sandbox Code Playgroud)

OpenCombo

我认为最好的办法就是以某种方式添加一个事件触发器,设置SelectedIndex-1当项目被选中,但这里是我卡住了.

任何想法如何做到这一点?或者更好的方式,如附加行为?

.net c# wpf xaml combobox

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

combobox ×2

wpf ×2

.net ×1

c# ×1

data-binding ×1

xaml ×1