Pam*_*sse 3 wpf xaml binding listbox datatemplate
我正在尝试在名为"ListStr"对象的List和ListBox WPF控件之间设置两个绑定.此外我希望这些项目是可编辑的,所以我添加了一个带有TextBoxes的DataTemplate,期望它可以通过TextBoxes直接修改ListStr项目.
但是当我试图编辑其中一个时,它不起作用......
任何的想法 ?
PS:我试图添加Mode = TwoWay参数,但它仍然无效
这是XAML:
<ListBox ItemsSource="{Binding Path=ListStr}" Style="{DynamicResource ResourceKey=stlItemTextContentListBoxEdit}" />
Run Code Online (Sandbox Code Playgroud)
这是样式代码:
<Style x:Key="stlItemTextContentListBoxEdit" TargetType="{x:Type ListBox}">
<Setter Property="Background" Value="#FF0F2592" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Height" Value="150" />
<Setter Property="Width" Value="200" />
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="ItemTemplate" Value="{DynamicResource ResourceKey=dtplItemTextContentListBoxEdit}" /></Style>
Run Code Online (Sandbox Code Playgroud)
和DataTemplate:
<DataTemplate x:Key="dtplItemTextContentListBoxEdit">
<TextBox Text="{Binding Path=.}" Width="175" />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
当你使用时,双向绑定不起作用{Binding Path=.}(这很长{Binding}).请记住发生的事情.
在ListBox被赋予对象的列表,它然后创建一个ListBoxItem每个项目.所述DataContext的ListBoxItem然后被设置到该对象.当你使用时{Binding},你只是想使用中的对象DataContext.当您键入TextBox时,它会更新什么?它无法设置DataContext,也不知道对象的来源(因此无法更新列表/数组).
双向绑定确实有效的方法是绑定到该对象上的属性.但是当你绑定到对象本身时.
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |