У меня довольно сложная ситуация Binding.У меня есть решение, которое я создал в формах Windows для этого еще в VS2005, но сейчас я воссоздаю элемент управления с помощью wpf, но я делаю это не так, как раньше.
IУ меня есть элемент управления списком, который имеет следующий DataTemplate:
<DataTemplate>
<Border CornerRadius="5" BorderBrush="Black" BorderThickness="1">
<StackPanel>
<TextBlock x:Name="TaxonomyCode" Margin="2" FontWeight="Bold"
FontSize="12">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}{1}{2}X">
<Binding Path="TaxonomyTypeID" />
<Binding Path="TaxonomyClassificationID" />
<Binding Path="TaxonomySpecializationID" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Margin="2"
Text="{Binding ElementName=TaxonomyCode,Path=Text,Converter={StaticResource TaxonomyCodeToDescriptionConverter}}" />
</StackPanel>
</Border>
</DataTemplate>
Ниже у меня есть 3 списка, которые перечисляют фактические иерархии таксономии, используя свойства моей ViewModel ...
<ListBox
Grid.Column="0" Grid.Row="1"
ItemsSource="{Binding TaxonomyTypeLUT}"
DisplayMemberPath="IDDescription"
SelectedItem="{Binding Path=SelectedTaxonomyType}" />
<ListBox
Grid.Column="1" Grid.Row="1"
ItemsSource="{Binding SelectedTaxonomyType.TaxonomyClassifications}"
DisplayMemberPath="IDDescription"
SelectedItem="{Binding Path=SelectedTaxonomyClassification}" />
<ListBox
Grid.Column="2" Grid.Row="1"
ItemsSource="{Binding SelectedTaxonomyClassification.TaxonomySpecializations}"
DisplayMemberPath="IDDescription"
SelectedItem="{Binding SelectedTaxonomySpecializations}" />
ФактическийСвязывание базы данных также довольно сложно.С несколькими ключами для каждой таблицы в иерархии, потому что каждая таблица может содержать один и тот же ключ, который принадлежит разным родителям ... например,
код таксономии: 207R00000X, который разбивается на: 20 7R 00000 переводится в: Аллопатический,внутренняя медицина, код таксономии внутренней медицины: 208M00000X, который разбивается на: 20 8M 00000 переводится как: аллопат, госпиталист, госпиталист
Каждый из этих разбивок является ключевым полем в своей таблице.
Вот схема моих таблиц.
Я пытаюсь, чтобы мой нижний элемент управления менял каждого ребенка по мере того, как сделан новый выбор.У меня это работает.Теперь, когда я выбираю верхний список, я хочу, чтобы нижние списки отражали Таксономию выбранного элемента.Я тоже могу это сделать, связав One-Way.
Если я не связываю односторонний путь, я получаю следующее сообщение об ошибке: «Свойство« TaxonomySpecializationID »является частью ключевой информации объекта и не может быть изменено».
В идеале то, что я хочу, чтобы иметь возможностьсделать, это изменить таксономию выбранного DoctorTaxonomy, используя списки.Может быть, это просто не сработает ...