Я перерабатываю свой простой шестнадцатеричный редактор, чтобы практиковать, используя то, что я недавно узнал о привязке данных в WPF. Я не уверен, что я делаю неправильно здесь.Что я делаю неправильно с моим ItemsControl & databinding?
Как я понимаю, для каждого байта в коллекции «бэкэнд» (наследуется от 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>
Hm. Я сделал оба этих вопроса, как только прочитал ваш ответ, но он все еще не работает. – Joel
Ваша пересмотренная версия делает трюк, спасибо. Насколько я могу судить, единственное существенное различие между вашим кодом и моим - это Path =. Я не уверен, что это такое, но для Google довольно сложно. Я также не знал о двухсторонней привязке, не работающей без класса-оболочки, что также очень помогает. – Joel