我有一个绑定到列表框的文本框:
<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");
}
}
}
但我甚至无法在文本框中输入内容。如果我使用命令添加一个空元素并选择它,我就无法编辑它。
答案 0 :(得分:0)
您的文本框需要绑定到listbox selecteditem的属性,类似这样
<TextBox Text="{Binding ElementName=PasswordsBox, Path=SelectedItem.Password, Mode=TwoWay}" Grid.Column="1" Grid.Row="1" Name="PasswordBox"/>
因为所选项目的类型为Password,我认为密码类中包含文本属性。