【问题标题】:List<String> Databind to multiple Textbox on WPFList<String> 数据绑定到 WPF 中的多个文本框
【发布时间】:2014-11-03 15:57:07
【问题描述】:

您好,我已经阅读了一些关于数据绑定的教程,但我似乎找不到我需要的是将列表的数据绑定到多个文本框。

我不确定这在 WPF 上是否可行,而且我对数据绑定还很陌生,所以请耐心等待。

我有一个列表(全局变量) 假设它有 3 个单词,分别是“Apple”、“Banana”和“Orange” 这 3 个词由我的 XAML 的代码后面给出。

在我的 XAML 中,我有 3 个文本框,从第一个到第三个我想将我的列表分配给它,所以从

first textbox -> Apple
second textbox -> Banana
third textbox -> Orange 

现在的问题是我需要它以两种方式工作,这意味着例如 我将第一个文本框编辑为“Mango”,后面的代码列表也会改变。

这可以在数据绑定上实现吗?

【问题讨论】:

  • List 是否固定为 3?如果是这样,请使用 string[].
  • 查看 MSDN 上的 PropertyPath XAML Syntax 页面,了解您可以使用的不同 Binding Path 语法。

标签: c# wpf data-binding


【解决方案1】:

您可以只绑定到列表的元素。

<TextBox Text="{Binding Path=FruitList[0]}" />
<TextBox Text="{Binding Path=FruitList[1]}" />
<TextBox Text="{Binding Path=FruitList[2]}" />

编辑:

TextBox 的默认绑定方法是 TwoWay,但如果您想清楚,可以添加它。

<TextBox Text="{Binding Path=FruitList[0]} Mode=TwoWay" />

您还可以添加UpdateSourceTrigger=PropertyChanged 以使列表在每次击键时更新。

编辑2:

要访问在后面的代码中创建的对象,您必须设置 WPF 的 DataContext。见wpf xaml binding to object created in code behind

【讨论】:

  • 您的代码 "Text="{Binding Path=FruitList[0]} Mode=TwoWay"" 不起作用,Mode=TwoWay 有错误。如何声明 FruitList?我尝试将它放在后面代码中的全局变量上,但它没有返回任何值。我应该在我的 XAML 上声明或添加一些东西吗?
猜你喜欢
  • 2014-01-31
  • 2010-09-25
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多