我正在修改我的简单的十六进制编辑器,练习使用我最近在WPF中学习的数据绑定。我不确定我在这里做错了什么。我在做什么我的ItemsControl和数据绑定错了?
据我所知,对于集合“backend”(从ObservableCollection继承)中的每个字节,我的ItemsControl应该在资源下应用DataTemplate。这个模板只是一个绑定到值转换器的文本框。所以我期待看到一排文本框,每个文本框都包含一个字节的字符串表示。当我使用这个XAML时,我所得到的只是一行不可编辑的文本,据我所知可以不使用文本框。我究竟做错了什么?
我在下面粘贴了我的XAML,并删除了不相关的部分(菜单声明,模式等)。
<Window ...>
<Window.Resources>
<local:Backend x:Key="backend" />
<local:ByteConverter x:Key="byteConverter" />
<DataTemplate DataType="byte">
<TextBox Text="{Binding Converter={StaticResource byteConverter}}" />
</DataTemplate>
</Window.Resources>
<StackPanel>
<ItemsControl ItemsSource="{Binding Source={StaticResource backend}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</Window>
嗯。我一读完你的答案,我就做了这两个,但它仍然无法正常工作。 – Joel 2010-06-01 21:19:21
您的修订版本会诀窍,谢谢。尽我所知,您的代码和我的代码之间唯一重要的区别是Path =。我不确定那是干什么的,谷歌这段时间有点困难。我也不知道如果没有包装类,双向绑定不起作用,这也有很大帮助。 – Joel 2010-06-03 00:55:39