0

我在一个名为 HistoryStatistics 的类中有一个 ListView,它的模板看起来像这样。每个项目都有一个按钮和两个文本块。

    <ListView x:Name="HistoryLV" Grid.Row="1" Grid.Column="1" Margin="20,20,20,20">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <Button/>
                    <TextBlock x:Name="historyDatesTBlock" Text="{Binding}" Foreground="Coral"/>
                    <TextBlock x:Name="cycleLengthTBlock" Foreground="AliceBlue"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

现在我需要用两个不同的值对文本框进行数据绑定。我有一个名为 CycleManager 的类。它有一个日期时间数组。我想将数组的前 n 个值数据绑定到第一个文本块。

在 HistoryStatistics 的构造函数中,我有一个名为 LoadListView 的函数。

    public void LoadListView()
    {
        CycleManager cycMan = CycleManager.Instance;            
        DateTime[] items = cycMan.GetHistoryArray();
        HistoryList = new ObservableCollection<DateTime>(items);
        HistoryLV.DataContext = HistoryList;
    }

这是绑定日期时间的正确方法吗?我尝试添加 ToString 但未显示日期。

有没有一种方法可以在后面的代码中创建一个 ListView 并通过运行 forloop 将单个项目与我想要的值绑定?

4

2 回答 2

1

尝试:

CycleManager cycMan = CycleManager.Instance;            
DateTime[] items = cycMan.GetHistoryArray();

string[] list = new string[items.Length];
for(int i=0; i<items.Length; i++)
{
    list[i] = items[i].ToString("**The DateTime format you want**");
}

HistoryList = new ObservableCollection<string>(list);
HistoryLV.ItemsSource = HistoryList;
于 2013-05-17T10:45:01.187 回答
1

请尝试将以下行添加到您的 LoadListView 方法。我自己没有尝试过,因为我的系统上没有安装 Windows 8。

HistoryLV.ItemsSource = HistoryList;
于 2013-05-17T06:17:15.383 回答