Windows phone 7 Listbox的TextBox项双向数据绑定时出现Windows phone异常
我在将文本框绑定到字符串时遇到问题(StringBuilder也有同样的问题) 以下是xaml: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
<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;}
使用