我想创建一个包含列表框的用户控件,我无法弄清楚如何正确设置数据绑定。Silverlight用户控件数据绑定
在MainForm.xaml(MyItems是在视图模型中定义的的ObservableCollection):
<my:ItemsList Items="{Binding MyItems}"/>
用户控逆变:
public partial class ItemsList : UserControl
{
public ItemsList()
{
InitializeComponent();
}
public IEnumerable Items
{
get { return (IEnumerable)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(IEnumerable), typeof(ItemsList), null);
}
而XAML(省略命名空间声明):
<UserControl x:Class="MyApp.Controls.ItemsList">
<phone:LongListSelector ItemsSource="{Binding Items}">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ItemName}" />
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</UserControl>
我得到的错误:BindingExpression路径错误:'MyApp.V上找不到'Items'属性iewModels.MainViewModel'?!?
这感觉不对,控制不知道该视图模型(在设计时)。我打算在不同视角模型的几个不同地方使用该控件。 – 2013-04-08 19:56:26
我的DataTemplate比示例代码复杂一些... – 2013-04-08 19:59:05
我可能错过了第一次看它。您可能正在寻找使用绑定到c#文件中的属性或依赖项属性的控件标记上的模板绑定 – RKaufman 2013-04-08 21:14:23