我的业务层中有一个对象(例如,让我们称之为Car),我创建了一个UserControl(CarIcon)。用户控件具有Car对象的属性,当Car对象设置时,它调用一个方法来配置用户控件的各种属性。
现在我正在重写它以使用依赖项属性,以便我可以使用数据模板并在运行时将后备Car对象绑定到CarIcon用户控件。理想情况下,我想将对象绑定到用户控件并让用户控件自动更新它的显示。
似乎没有设置依赖项属性,并且应用程序显示空白图标(因为没有支持对象,没有要显示的数据)。我绑错了吗?
这也是一种合理的方法(考虑到我不想为一个简单的控件实现一个完整的MVVM)?
将汽车绑定到xaml中的CarIcon
<ItemsControl Name="m_itemsControl" Focusable="false"
pixellabs:AnimatingTilePanel.ItemHeight="100" pixellabs:AnimatingTilePanel.ItemWidth="300">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<pixellabs:AnimatingTilePanel Width="300" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<sample:CarIcon CurrentCar="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
依赖项属性的代码
public Car CurrentCar {
get { return (Car)GetValue( CarProperty ); }
set { SetValue( CarProperty, value ); }
}
public static readonly DependencyProperty CarProperty =
DependencyProperty.Register(
"CurrentCar",
typeof( Car ),
typeof( CarIcon ),
new UIPropertyMetadata() );
答案 0 :(得分:0)
将第一个参数更改为属性名称(CurrentCar而不是Car)。您还应该提供一些默认值,例如null或new Car()
public static readonly DependencyProperty CarProperty =
DependencyProperty.Register(
"CurrentCar",
typeof(Car),
typeof(CarIcon),
new UIPropertyMetadata(new Car()));