我有一个文本框和提交按钮的窗口。按下提交按钮时,文本框中的数据应该填充到列表框中并保存。填充列表框
这样做的最好方法是什么?我尝试了一个建议(使用ObservableCollection)从我以前的问题,但我似乎无法得到它的工作。我曾尝试实施这样的:
我创建了一个类:
public class AccountCollection
{
private string accountName;
public string AccountName
{
get { return accountName; }
set { accountName = value; }
}
public AccountCollection(string accountName)
{
AccountName = accountName;
}
}
分配在我的XAML绑定:
<ListBox ItemsSource="{Binding AccountName, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True" Height="164" HorizontalAlignment="Left" Margin="12" Name="accountListBox" VerticalAlignment="Top" Width="161" SelectionChanged="accountListBox_SelectionChanged" />
......最后,当用户点击提交从另一个窗口,包含提交按钮和文本框的按钮:
private void okBtn_Click(object sender, RoutedEventArgs e)
{
BindingExpression expression = okBtn.GetBindingExpression(accountaddTextBox.Text);
expression.UpdateSource();
}
但唉,我越来越无处。
参数1:我在GetBindingExpression部分得到错误信息无法从“字符串”转换为“System.Windows.DependencyProperty”
什么是明显,我这里要说的是,当我创建的类我没有”从文本框中指定帐户名称的任何内容,所以我甚至不知道该类是否正确。
我基本上困惑,不知道该怎么做。任何帮助,将不胜感激......
我所做的这一切,但它仍然没有工作。我必须错过简单的东西。唯一的区别是我必须在okBtn_Click事件中实例化一个ViewModel的实例。 ViewModel vm = new ViewModel(); vm.Accounts.Add(accountaddTextBox.Text); – Woody 2012-01-11 08:04:16
你是否设置了你的窗口的DataContext? 'mainWindow.DataContext = new ViewModel();'你只需要一次创建viewmodel的实例,而不是每次点击! – 2012-01-11 08:08:32
是的。 'public account() { InitializeComponent(); DataContext = new ViewModel(); }' – Woody 2012-01-11 08:20:16