【发布时间】:2015-07-05 03:11:17
【问题描述】:
将 HubPage 部分中定义的视图绑定到相应的 ViewModel 所需的流程是什么?
<Hub Header="{Binding HubHeader}" >
<HubSection x:Name="NewestOffers" Header="{Binding NewestOffersHeader}" IsHeaderInteractive="True" >
<DataTemplate >
<local:NewestOffersView DataContext="{Binding NewestOffers}"/>
</DataTemplate>
</HubSection>
<HubSection Header="{Binding SearchHeader}" IsHeaderInteractive="True" >
<DataTemplate x:Name="SearchView">
<local:SearchView/>
</DataTemplate>
</HubSection>
<HubSection Header="{Binding AddOfferHeader}" IsHeaderInteractive="True" >
<DataTemplate>
<local:AddOfferView/>
</DataTemplate>
</HubSection>
<HubSection Header="{Binding AccountHeader}" IsHeaderInteractive="True">
<DataTemplate>
<local:AccountView/>
</DataTemplate>
</HubSection>
</Hub>
我创建了所有的 ViewModel,例如 NewestOffersViewModel、SearchViewModel 等,但它没有被绑定。而且我没有忘记在容器配置中注册它们。
@编辑: 包含中心的页面的视图模型:
public class MainPageViewModel : PropertyChangedBase
{
public string HubHeader
{
get { return "Second Hand Bookshop"; }
}
public SearchViewModel SearchView { get; set; }
public NewestOffersViewModel NewestOffersViewModel { get; set; }
public MainPageViewModel()
{
SearchView = new SearchViewModel();
NewestOffersViewModel = new NewestOffersViewModel();
}
public string SearchSectionHeader
{
get { return "Search"; }
}
还有 MainPageView(我正在尝试将 NewestOffersView 绑定到 NewestOffersViewModel)。
<Hub Header="{Binding HubHeader}" >
<HubSection Header="{Binding NewestOffersHeader}" IsHeaderInteractive="True" >
<DataTemplate >
<ContentControl x:Name="NewestOffersViewModel" />
</DataTemplate>
</HubSection>
【问题讨论】:
标签: c# xaml mvvm windows-phone caliburn.micro