我想創建一個包含列表框的用戶控件,我無法弄清楚如何正確設置數據綁定。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