将FlipView与GridView绑定
本文关键字:绑定 GridView FlipView | 更新日期: 2023-09-27 18:07:56
我有一个GridView绑定的数据源工作得很好。
public void LoadXmlData(string dateOfRunAsString)
{
IEnumerable<RetrieveFromXml> processList = from process in xmlDocument.Descendants("Process")
where process.Parent.Parent.Attribute("Date").Value == dateOfRun
select new RetrieveFromXml(process.Attribute("Name").Value, Convert.ToDouble(process.Elements("ActiveTime").Sum(sec => (int)sec)));
NameGrid.ItemTemplateSelector = myTemplateSelector;
NameGrid.ItemsSource = processesList;
}
现在的问题是我需要将Gridview合并到flipView。
就像FlipView会显示每天的gridview。
之类的for(int i = 0; i<10; i++)
{
flipview.list.add(processfromxml(date+i));
//Consider processfromxml() is returning a Ienumerable List
}
这样FlipView就会显示第一天的GridView当点击下一个按钮时,它会显示第二天的GridView
请帮助如何在windows 8中的XAML, c#中实现此功能
这是我的底层类来获取数据。
public class RetrieveProcessFromXml
{
private string name;
private double activeTime;
public RetrieveFromXml(string nameFromXml,double activeTimeFromxml)
{
name = nameFromXml;
activeTime = activeTimeFromxml;
}
public string Name
{
get { return name; }
set { name = value; }
}
public double ActiveTime
{
get { return activeTime; }
set { activeTime = value; }
}
enter code here
} //End Class
你有这样的循环
for(int i = 0; i<10; i++)
{
flipview.list.add(processfromxml(date+i));
//Consider processfromxml() is returning a Ienumerable List
}
所以如果你想在FlipView
中添加项目,那么你必须添加GridView
而不是IEnumerable
列表。你必须将ItemsSource
分配给特定的GridView
,然后将GridView
添加到FlipView
。
这里我给你一个简单的例子
XAML
<Page.Resources>
<DataTemplate x:Name="MyTemplate">
<Border Background="DarkGray" Width="100" Height="100">
<TextBlock Text="{Binding}"
Foreground="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="30"/>
</Border>
</DataTemplate>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<FlipView x:Name="flipview" Height="500" Width="500"/>
</Grid>
c# List<SolidColorBrush> colors;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
colors = new List<SolidColorBrush>
{
new SolidColorBrush(Windows.UI.Colors.Red),
new SolidColorBrush(Windows.UI.Colors.Gainsboro),
new SolidColorBrush(Windows.UI.Colors.BlanchedAlmond),
new SolidColorBrush(Windows.UI.Colors.Turquoise),
new SolidColorBrush(Windows.UI.Colors.Azure),
new SolidColorBrush(Windows.UI.Colors.Teal),
new SolidColorBrush(Windows.UI.Colors.Tan),
new SolidColorBrush(Windows.UI.Colors.PowderBlue),
new SolidColorBrush(Windows.UI.Colors.WhiteSmoke),
new SolidColorBrush(Windows.UI.Colors.SeaGreen)
};
for (int i = 0; i < 10; i++)
{
flipview.Items.Add(AddNewGridview(i));
}
}
int i = 1, j = 0;
GridView AddNewGridview(int k)
{
var gv = new GridView();
gv.Background = colors[k];
gv.ItemTemplate = this.Resources["MyTemplate"] as DataTemplate;
List<int> IDs = new List<int>();
while(i < 17 + j)
{
IDs.Add(i);
i++;
}
j = i - 1;
gv.ItemsSource = IDs;
return gv;
}