【发布时间】:2010-10-18 06:18:28
【问题描述】:
我有一个包含列表框的用户控件。我想绑定到列表框的选定项属性,所以我创建了一个依赖属性。
public HousePrice SelectedItem
{
get
{
return (HousePrice)GetValue(SelectedItemProperty);
}
set
{
SetValue(SelectedItemProperty, value);
}
}
public static readonly DependencyProperty SelectedItemProperty =
DependencyProperty.Register(
"SelectedItem",
typeof(HousePrice),
typeof(HorizontalListBox),
null
);
private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
{
SelectedItem = (HousePrice)e.AddedItems[0];
}
}
我像这样绑定到属性:
<UserControls:HorizontalListBox
DataContext="{Binding HousePrices}"
SelectedItem="{Binding SelectedPriceFrom, Mode=TwoWay}" >
</UserControls:HorizontalListBox>
我的视图模型属性:
private HousePrice _selectedPriceFrom;
public HousePrice SelectedPriceFrom
{
get
{
return _selectedPriceFrom;
}
set
{
_selectedPriceFrom = value;
NotifyOfPropertyChange("SelectedPriceFrom");
}
}
我可以看到 dp 正在设置,但绑定到我的 vm 属性似乎不起作用。
编辑:
我认为问题在于将 UserControl 的 DataContext 设置为 HousePrices(我的 VM 中的一个属性),并将 SelectedItem 设置为我的 VM 中的另一个属性。我猜它试图找到相对于 HousePrices 的 SelectedItem。
另一个怪癖是我使用的是 Caliburn Micro 框架。
有什么想法吗?
【问题讨论】:
标签: windows-phone-7 dependency-properties