在一行中,我可以说你可以将你的网格高度和宽度属性绑定到一些双重属性,并可以在你的逻辑上处理它..但我也有一些代码用于你的逻辑。希望它可以帮助你..
所以首先创建了一个ListData类,我在其中创建了一些属性,这些属性将由longlistSelector的项目使用..这里是类..
public class ListData
{
public double height { get; set; }
public double width { get; set; }
public string text { get; set; }
public string ImagePath { get; set; }
public Visibility isTextVisible { get; set; }
public Visibility isImageVisible { get; set; }
}
现在我创建了一个ObservableCollection,您的LongListSelector itemsSource属性将与它绑定..
public ObservableCollection<ListData> ListOfData { get; set; }
现在我已经用数据填充了这个集合..这里的数据是你的ListData类对象,具有不同的属性值,它将反映在你的LongListSelector 项中..我已经在我的主页构造函数中填充了它..
public MainPage()
{
InitializeComponent();
ListOfData = new ObservableCollection<ListData>();
ListData sd = new ListData();
sd.ImagePath = "/Assets/1.jpg";
sd.text = "";
sd.isTextVisible = Visibility.Collapsed;
sd.isImageVisible = Visibility.Visible;
sd.height = 250;
sd.width = 250;
ListData sd1 = new ListData();
sd1.ImagePath = "/Assets/1.jpg";
sd1.text = "afhjkahfjkahjkghadgjkgjkv";
sd1.isTextVisible = Visibility.Visible;
sd1.isImageVisible = Visibility.Collapsed;
sd1.height = 50;
sd1.width = 50;
ListOfData.Add(sd);
ListOfData.Add(sd1);
ListOfData.Add(sd);
ListOfData.Add(sd1);
ListOfData.Add(sd);
ListOfData.Add(sd1);
ListOfData.Add(sd);
ListOfData.Add(sd1);
this.DataContext = this;
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}
现在一切都准备好了..我已经设置了页面的数据和数据上下文..所以剩下的是你定义了 LingListSelector 的 xaml 页面..这里我已经绑定了每个属性..只是为了你的方便..
<phone:LongListSelector Grid.Row="0" ItemsSource="{Binding ListOfData}">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid Height="{Binding height}" Width="{Binding width}" >
<TextBlock Text="{Binding Path=text}" Visibility="{Binding isTextVisible}"/>
<Image Source="{Binding Path=ImagePath}" Visibility="{Binding isImageVisible}" />
</Grid>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
在这里..所有事情都在完成..它现在需要你的逻辑..希望它可以帮助你..