任何人都可以帮助以下 - 一直在玩这个,但不能为我的生活得到它的工作。WPF绑定到Listbox selectedItem
我有一个视图模型,其中包含以下属性;
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工作正常,我得到规则的列表,在lbRules显示他们的名字对象。
麻烦我正在将SelectedRule属性绑定到lbRules的SelectedItem。我尝试将文本块的文本属性绑定到SelectedRule,但它始终为空。
<TextBlock Text="{Binding Path=SelectedRule.Name}" />
我看到在输出窗口中的错误是: BindingExpression路径错误:找不到“SelectedRule”属性。
任何人都可以帮助我这个绑定 - 我不明白为什么它不应该找到SelectedRule属性。
然后我试着改变文本块的文本属性作为波纹管,它工作。麻烦的是我想在我的ViewModel中使用SelectedRule。
<TextBlock Text="{Binding ElementName=lbRules, Path=SelectedItem.Name}" />
非常感谢您的帮助。
就是这样,傻了我,我没有在该视图模型上实现接口。一整天早上我的头撞在墙上! 非常感谢您的帮助。也非常感谢其他人,特别是Yacoder,花时间看看这个。 – 2010-01-06 14:27:14
也谢谢我。刚刚有确切的问题。我实现了界面,但忘记提高事件。 – 2011-09-19 21:05:01