Windows phone 7 Listbox的TextBox项双向数据绑定时出现Windows phone异常

Windows phone 7 Listbox的TextBox项双向数据绑定时出现Windows phone异常,windows-phone-7,xaml,listbox,Windows Phone 7,Xaml,Listbox,我在将文本框绑定到字符串时遇到问题(StringBuilder也有同样的问题) 以下是xaml: <ListBox x:Name="MyList" ItemsSource="{Binding ListOfBullets, Mode=TwoWay, Converter=StaticResourcedebugConverter}}"> <ListBox.ItemTemplate> <DataTemp

我在将文本框绑定到字符串时遇到问题(StringBuilder也有同样的问题)

以下是xaml:

<ListBox x:Name="MyList" ItemsSource="{Binding ListOfBullets, Mode=TwoWay, Converter=StaticResourcedebugConverter}}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                            <local:TaskStepControl Text="{Binding  Mode=TwoWay}" AddHnadler="{Binding DelegateForHandlingAddTaskStep, ElementName=uc}"></local:TaskStepControl>                          
                    </DataTemplate>
                </ListBox.ItemTemplate>

列表框的项目为:

public ObservableCollection<StringBuilder> ListOfBullets{get{....} set{....}}
PublicObservableCollectionListofBullets{get{..}set{..}
我还尝试:

public ObservableCollection<string> ListOfBullets{get{....} set{....}}
PublicObservableCollectionListofBullets{get{..}set{..}
如果我运行该应用程序,我会收到一个未经处理的异常“参数不正确” 如果我删除Mode=TwoWay,那么它可以工作,但是编辑文本框不会改变bullets列表中的文本绑定对象

我做错了什么?

你不能有一个带有空属性路径的双向绑定

我猜绑定引擎只能对特定属性执行双向绑定,而不能对对象本身执行双向绑定

我对为什么不允许这样做的想法:

为了保持简单,您可以认为双向绑定的“编写”部分只是在数据源对象上设置提供的值。因此,这个标记
Text={Binding Name,Mode=TwoWay}
类似于文本更新时的C#code:
dataSource.Name=textBox.Text
(当然,整个绑定工作流要复杂得多,并且在幕后做其他事情,但现在这并不重要)

您的示例尝试执行类似于
listItem=textBox.Text的操作,这不会更新bullets列表的实际项目。请记住,我已经大大简化了绑定的工作方式,只是为了让您了解正在发生的事情

你能做什么:

创建一个将包含字符串值并绑定到的包装器模型类

publicobservableCollectionListofBullets{get;set;}

使用