![](/img/trans.png)
[英]Binding of RowDefinition in FlipView different then binding of FlipView itself
[英]Binding a FlipView with GridView
我有一個與數據源的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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.