文本框,列表框,可观察集合之间的绑定链不起作用

时间:2016-08-06 09:33:02

标签: wpf binding

我有一个绑定到列表框的文本框:

<TextBox Text="{Binding ElementName=PasswordsBox, Path=SelectedItem, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" Grid.Row="1" Name="PasswordBox"/>
<ListBox ItemsSource="{Binding Processor.Passwords,ValidatesOnDataErrors=True,Mode=TwoWay}" Name="PasswordsBox" Grid.Row="1"/>

和一个按钮,它将文本框的内容添加到列表框所绑定的列表中:

<Button Grid.Row="1" Grid.Column="3" Command="{Binding AddPasswordCommand}" CommandParameter="{Binding Text, ElementName=PasswordBox}">+</Button>

该命令定义如下:

_addPasswordCommand = new DelegateCommand<string>((newPass) =>  Processor.Passwords.Add(newPass));

这是&#34;密码&#34;从模型中收集:

public ObservableCollection<string> Passwords
   {
        get
        {
            return _passwords;
        }
        set
        {
            if (_passwords != value)
            {
                _passwords = value;
                OnPropertyChanged("Passwords");
            }
        }
    }

但我甚至无法在文本框中输入内容。如果我使用命令添加一个空元素并选择它,我就无法编辑它。

1 个答案:

答案 0 :(得分:0)

您的文本框需要绑定到listbox selecteditem的属性,类似这样

<TextBox Text="{Binding ElementName=PasswordsBox, Path=SelectedItem.Password, Mode=TwoWay}" Grid.Column="1" Grid.Row="1" Name="PasswordBox"/>

因为所选项目的类型为Password,我认为密码类中包含文本属性。