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