Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将observableCollection字符串绑定到列表框_C#_Wpf - Fatal编程技术网

C# 如何将observableCollection字符串绑定到列表框

C# 如何将observableCollection字符串绑定到列表框,c#,wpf,C#,Wpf,我有一个observableCollection实例,我想将它绑定到一个列表,并让用户能够直接更改此集合中的字符串 目前的实施情况如下: class container { public OBservableCollection<string> data {get; set;} public container() { data = new ... } } ... var instance = new container(); listBox.ItemsSource

我有一个observableCollection实例,我想将它绑定到一个列表,并让用户能够直接更改此集合中的字符串

目前的实施情况如下:

class container
{
    public OBservableCollection<string> data {get; set;}
    public container() { data = new ... }
}
...
var instance = new container();
listBox.ItemsSource = instance.data;
类容器
{
公共可观测收集数据{get;set;}
公共容器(){data=new…}
}
...
var实例=新容器();
listBox.ItemsSource=instance.data;
对于XAML:

<ListBox>
 <ListBox.ItemTemplate>
  <DataTemplate>
   <StackPanel Orientation="Horizontal">
    <TextBox Text="{Binding}" MinWidth="50"/>
   </StackPanel>
  </DataTemplate>
 </ListBox.ItemTemplate>
</ListBox>

当我向该列表添加任何字符串时,会出现一个错误,“双向绑定需要路径或XPath”。我尝试将路径值设置为“.”,因为我的目标是相同的源值,但绑定失败


请注意,

WPF绑定不能替换集合中的元素

您必须创建一个具有字符串属性的数据项类

class Item
{
    public string Text { get; set; }
}

class Container
{
    public ObservableCollection<Item> Data { get; set; }
}
类项目
{
公共字符串文本{get;set;}
}
类容器
{
公共可观测收集数据{get;set;}
}
这可能是双向的:

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBox Text="{Binding Text}" MinWidth="50"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>


我知道您已经尝试过了,但是您是否这样做了--path=。@Muds您的意思是:Text=“{Binding path=。}”,当然我做了,我在问题中说过,您必须创建一个数据项类,将字符串作为属性公开。绑定可以更改其源属性,但不能替换集合中的字符串。@Clemens,谢谢,但我认为如果我们可以直接访问该值,从设计角度看会更好。是的,Clemens是对的,您需要在字符串周围有一个包装类。。。如果您需要样品,请告诉我