Windows phone 7 windows phone 8 longlistselector绑定数据上下文

Windows phone 7 windows phone 8 longlistselector绑定数据上下文,windows-phone-7,windows-phone-8,windows-phone,Windows Phone 7,Windows Phone 8,Windows Phone,目前我正在将itemsource绑定到longlistselector。我将如何在下面的代码中绑定datacontext 在我的cs文件中,问题是我需要为datacontext绑定而不是itemsource指定正确的语法,以便我的viewmodel中的DisplayMoreButton和BookCategoriesList属性分别绑定到footertemplate和itemtemplate中的longlistselector public BooksListing() {

目前我正在将itemsource绑定到longlistselector。我将如何在下面的代码中绑定datacontext

在我的cs文件中,问题是我需要为datacontext绑定而不是itemsource指定正确的语法,以便我的viewmodel中的DisplayMoreButton和BookCategoriesList属性分别绑定到footertemplate和itemtemplate中的longlistselector

 public BooksListing()
    {
        InitializeComponent();
        bookcategoriesvm = new BookCategoriesViewModel(); 


    }

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {         
            base.OnNavigatedTo(e);
            if (NavigationContext.QueryString.TryGetValue("catid", out categoryid))
            {
                if (this.State.ContainsKey("categoryid"))
                {
                    categoryid = this.State["categoryid"].ToString();
                }
            }          
            bookcategoriesvm.GetPagedBookCategoriesList(Convert.ToInt64(categoryid), 0);
            bookslist.ItemsSource = bookcategoriesvm.BooksCategoriesList;         
    }
这是我的视图模型。基本上,DisplayShowMoreButton和BookCategoriesList是两个独立的实体。你可以在下面找到它们

  public class BookCategoriesViewModel : ViewModelBase
{
    public Paging<BookCategories> paging;
    public int Pagesize = 5;        
    public BookCategoriesRepository bookcategoriesrepository = new BookCategoriesRepository();



    private ObservableCollection<BookCategories> _bookscategorieslist { get; set; }
    public ObservableCollection<BookCategories> BooksCategoriesList
    {
        get { return _bookscategorieslist; }
        set
        {                
            _bookscategorieslist = value;       
        }
    }




    public string _DisplayShowMoreButton = "Visible";
    public string DisplayShowMoreButton
    {
        get
        {
            return _DisplayShowMoreButton;
        }
        set
        {
            if (RecordCount <= paging.RequiredListcount)
            {
                _DisplayShowMoreButton = "Collapsed";
            }
            else
            {
                _DisplayShowMoreButton = "Visible";
            }
            OnPropertyChanged("DisplayShowMoreButton");
        }
   } 

}
公共类BookCategoriesViewModel:ViewModelBase { 公共寻呼; 公共int Pagesize=5; public BookCategoriesRepository BookCategoriesRepository=new BookCategoriesRepository(); 私有可观测集合_bookscategorieslist{get;set;} 公共可观察收集图书分类列表 { 获取{return}bookscategorieslist;} 设置 { _bookscategorieslist=值; } } 公共字符串\u DisplayShowMoreButton=“可见”; 公共字符串显示ShowMore按钮 { 得到 { 返回显示ShowMore按钮; } 设置 { 如果(记录计数 只需在构造函数中添加this.DataContext=bookcategoriesvm;,然后修改LongListSelector,如下所示:


  <phone:PhoneApplicationPage.Resources>  

    <DataTemplate x:Key="booksListHeader">
        <Border Background="Purple">
            <TextBlock Text="Books Header" />
        </Border>
    </DataTemplate>
    <DataTemplate x:Key="booksListFooter">
        <StackPanel>// binding problem here
            <Button Content="Show More" x:Name="showmorebutton" Click="showmorebutton_Click" Visibility="{Binding DisplayShowMoreButton,Mode=OneWay}" />
        </StackPanel>


    </DataTemplate>

    <DataTemplate x:Key="BooksItemTemplate">
        <Grid x:Name="GridBox" Grid.Row="1" Margin="0,0,0,0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Image Name="loadingImage" Width="125" Source="Images/imageloading.jpg" Height="220" VerticalAlignment="Top"/>
            <Button Name="thbbtn" BorderThickness="0" Tag="{Binding BookId,Mode=OneWay}" Margin="0,-20,0,0" Click="thbbtn_Click" >
                <Image Name="ThumbnailImage" Width="125" Source="{Binding Images,Mode=OneWay, Converter={StaticResource ImageConverter}}" Height="220" VerticalAlignment="Top"/>
            </Button>
            <StackPanel Grid.Column="1" Grid.Row="0" VerticalAlignment="Top">
                <TextBlock Name="booktitle" Text="{Binding BookTitle,Mode=OneWay}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
                <TextBlock Text="{Binding AuthorName,Mode=OneWay}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiLight}"/>
            </StackPanel>
        </Grid>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>
   <phone:LongListSelector x:Name="bookslist" 
                                 Background="Transparent"  
                                 IsGroupingEnabled="False"
                                 ListFooterTemplate ="{StaticResource booksListFooter}"                        
                                 ItemTemplate="{StaticResource BooksItemTemplate}"/>