【问题标题】:Populate ListBox after clicking Submit button单击提交按钮后填充列表框
【发布时间】:2012-01-10 16:58:37
【问题描述】:

我想在文本框中输入文本并单击提交后填充列表框。我知道似乎很简单,但我是数据绑定和 WPF 的新手...

到目前为止,这是我的代码...我不知道 XAML 是否正确,当然我在后面的事件代码中没有任何内容...任何帮助将不胜感激。

XAML:

<ListBox ItemsSource="{Binding ElementName=accountaddTextBox, Path=SelectedItem.Content, Mode=OneWay, UpdateSourceTrigger=Explicit}"  Height="164" HorizontalAlignment="Left" Margin="12" Name="accountListBox" VerticalAlignment="Top" Width="161" />

后面的代码:

private void okBtn_Click(object sender, RoutedEventArgs e)
        {

        }

【问题讨论】:

  • 你想用什么填充你的listbox
  • 抱歉,我想在文本框中输入文本并让用户点击提交,然后它会填充列表框。
  • 用文本框的内容填充列表框?
  • 是的。我想用文本框的内容填充列表框。列表框必须保存并显示用户通过该文本框添加的任何内容。
  • 如果您不熟悉数据绑定,您应该阅读the overview

标签: c# wpf


【解决方案1】:

您当前的绑定告诉ListBox 找到一个名为accountaddTextBox 的对象,并绑定到它的SelectedItem.Content。我假设accountaddTextBoxTextBox,而SelectedItem 不是TextBox 上的有效属性,因此您的绑定无效。

最好将您的 ListBox 绑定到位于您的代码隐藏或 ViewModel 中的 ObservableCollection&lt;string&gt;,并让您的按钮向该集合添加一个新对象。由于是ObservableCollection,所以UI会自动更新

例如,

<ListBox ItemsSource="{Binding SomeObservableCollection}" />

private void okBtn_Click(object sender, RoutedEventArgs e)
{
    SomeObservableCollection.Add(accountaddTextBox.Text);
}

【讨论】:

  • 从技术上讲,SelectedItem.Content 属性可以存在于 runtime,因为 SelectedItem 只是一个对象...
  • @JohnGardner 如果accountaddTextBoxTextBox..... TextBoxes 没有SelectedItem 属性,则不是
  • 啊,确实如此。我从没想过绑定到 selecteditem 的东西首先会成为一个文本框...... :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
相关资源
最近更新 更多