这开始让我恼火,但我必须犯一些非常简单的错误。我目前有以下XAML代码:
<Grid x:Name="LayoutRoot"
DataContext="{StaticResource JourneyViewModel}">
<phone:Panorama Title="Journeys"
ItemsSource="{Binding journeys}">
<DataTemplate>
<TextBlock Text="{Binding name}" />
</DataTemplate>
</phone:Panorama>
</Grid>
直到我需要使用名称初始化文本块。我有“journeys”参数提供的项目。但是,我想提取旅程的名称并将其放入文本块中,而该文本块根本不起作用。我的猜测是我的XAML代码没有正确完成。以下是使用的类:
public ObservableCollection<JourneyModel> journeys
{
get
{
//I can verify with the debugger
//that this is not null and
//the variables inside the JourneyModels are set
return _journeyModels;
}
}
和JourneyModel:
public string name
{
get { return _journey.name; }
set
{
if (_journey.name != value)
_journey.name = value;
}
}
如果我正确设置MVVM,你可以纠正我,这是我的第一次冲刺。如果您需要更多代码位,请告诉我。我希望我能够清楚地说明这个问题。非常感谢任何帮助!
编辑:
加载ViewModel:
<UserControl.Resources>
<my:JourneyViewModel x:Key="JourneyViewModel"/>
</UserControl.Resources>
答案 0 :(得分:0)
代码很好,但您无法看到TextBlock
本身。您需要将DataTemplate
置于ItemTemplate
或HeaderTemplate
之内。
<phone:Panorama Title="Journeys" ItemsSource="{Binding journeys}">
<phone:Panorama.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding name}" />
</DataTemplate>
</phone:Panorama.HeaderTemplate>
</phone:Panorama>