我正在构建一个简单的windown电话7页。我正在做MVVM(使用MVVM光源)并将List<Category>
类型属性绑定到ListPicker
。这家酒店是在一个名为AddExpenseViewModel
像一个视图模型定义如下ListPicker不适用于MVVM Light
public class AddExpenseViewModel:ViewModelBase
{
public List<Category> Categories
{
get { return categories; }
set
{
categories = value;
RaisePropertyChanged("Categories");
}
}
}
Category
类定义为
public class Category
{
public string Name { get; set; }
}
在我的XAML我首先定义一个资源为
<UserControl.Resources> <bs:ViewModelLocator x:Key="ViewModelLocator" /> </UserControl.Resources>
然后将包含ListPicker
的网格的DataContext
设置为
<Grid x:Name="ContentPanel"
Grid.Row="1"
Margin="13,1,11,-1"
DataContext="{Binding Path=AddExpenseViewModel,
Source={StaticResource ViewModelLocator}}">
这里是我的ListPicker
<toolkit:ListPicker
HorizontalAlignment="Left"
Height="50"
Width="200"
Grid.Row="2"
Grid.Column="1"
DataContext="{Binding AddExpenseViewModel}"
ItemsSource="{Binding Path=Categories, Mode=OneWay}" >
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border Background="LightGreen" Width="*" Height="*">
<TextBlock Text="{Binding Name}"></TextBlock>
</Border>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
</toolkit:ListPicker>`
这不起作用XAML。 ListPicker
总是空的。我在这里做错了什么?
我看到输出窗口中的绑定错误,但这并没有什么帮助。如果我删除了ListPicker的DataContext,那么我得到一个类型为MS.Internal.WrappedException并带有“0x8000ffff”作为消息的异常。我正在更新有关更多详细信息的问题。 – Suhas
你可以发布你在绑定窗口中看到的消息吗?它通常解释什么是财产失败和如何。 – jonathanpeppers
我的问题已修复。我已经更新了这个问题的详细信息 – Suhas