Может кто-нибудь помочь со следующим - поиграл с этим, но не могу на всю жизнь заставить его работать.
У меня есть модель представления, которая содержит следующие свойства;
public ObservableCollection<Rule> Rules { get; set; }
public Rule SelectedRule { get; set; }
В моем XAML у меня есть;
<ListBox x:Name="lbRules" ItemsSource="{Binding Path=Rules}"
SelectedItem="{Binding Path=SelectedRule, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name:" />
<TextBox x:Name="ruleName">
<TextBox.Text>
<Binding Path="Name" UpdateSourceTrigger="PropertyChanged" />
</TextBox.Text>
</TextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Теперь ItemsSource работает нормально, и я получаю список объектов Rule с их именами, отображаемыми в lbRules.
У меня проблема с привязкой свойства SelectedRule к SelectedItem объекта lbRules. Я попытался привязать свойство text для текстового блока к SelectedRule, но оно всегда равно нулю.
<TextBlock Text="{Binding Path=SelectedRule.Name}" />
Ошибка, которую я вижу в окне вывода:
Ошибка пути BindingExpression: свойство SelectedRule не найдено.
Может ли кто-нибудь помочь мне с этой привязкой - я не понимаю, почему она не должна находить свойство SelectedRule.
Затем я попытался изменить свойство text для текстового блока, как показано ниже, что работает. Проблема в том, что я хочу использовать SelectedRule в моей ViewModel.
<TextBlock Text="{Binding ElementName=lbRules, Path=SelectedItem.Name}" />
Большое спасибо за вашу помощь.