作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 observableCollection 实例,我想将它绑定(bind)到一个列表,并让用户能够直接更改此集合中的字符串。
目前实现如下:
class container
{
public OBservableCollection<string> data {get; set;}
public container() { data = new ... }
}
...
var instance = new container();
listBox.ItemsSource = instance.data;
对于 XAML:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding}" MinWidth="50"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当我向该列表添加任何字符串时,会出现一个错误,“双向绑定(bind)需要 Path 或 XPath。”。我试过路径值为“。”因为我的目标是相同的源值,但绑定(bind)失败。
请指教,
最佳答案
WPF 绑定(bind)不能替换集合中的元素。
您必须创建一个具有字符串属性的数据项类
class Item
{
public string Text { get; set; }
}
class Container
{
public ObservableCollection<Item> Data { get; set; }
}
可以双向绑定(bind):
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Text}" MinWidth="50"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
关于c# - 如何将字符串的 observableCollection 绑定(bind)到列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29540153/
我是一名优秀的程序员,十分优秀!