簡體   English   中英

將FlipView與GridView綁定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM