Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从列表框计算数据的最佳方法_C#_Xaml_Listbox_Windows Phone - Fatal编程技术网

C# 从列表框计算数据的最佳方法

C# 从列表框计算数据的最佳方法,c#,xaml,listbox,windows-phone,C#,Xaml,Listbox,Windows Phone,我想计算储存在列表框中的圈数数据的平均值等,如:XX:XX:XX:XXX,但不确定最佳方法是什么。例如,最好将项目放在列表框中,并使用数组从列表框中计算或读取数据,等等 谢谢 更新:每次用户按下按钮时,列表框都会添加一个新条目。该信息将一直存储到应用程序关闭 应该使用列表保存数据,然后可以将listbox绑定到数据。您可以使用linq执行所需的计算 有关示例,请参见此处: 您需要通过以下方式完成此任务。绑定允许您将数据存储在一个位置,并且仍然在UI中显示它。绑定是MVVM(模型-视图-视图-模型

我想计算储存在列表框中的圈数数据的平均值等,如:XX:XX:XX:XXX,但不确定最佳方法是什么。例如,最好将项目放在列表框中,并使用数组从列表框中计算或读取数据,等等

谢谢


更新:每次用户按下按钮时,列表框都会添加一个新条目。该信息将一直存储到应用程序关闭

应该使用列表保存数据,然后可以将listbox绑定到数据。您可以使用linq执行所需的计算

有关示例,请参见此处:

您需要通过以下方式完成此任务。绑定允许您将数据存储在一个位置,并且仍然在UI中显示它。绑定是MVVM(模型-视图-视图-模型)框架的基础

下面是一个XAML的示例

<ListBox ItemsSource="{Binding LapTimes}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Time}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
public class MainViewModel // Should implement INotifyPropertyChange
{
    public MainViewModel()
    {
        LapTimes = new ObservableCollection<TimeSpan>();
    }
    public ObservableCollection<TimeSpan> LapTimes { get; private set; }

    private void CalculateStuff()
    {
        // calculate times
    }
}
背景视图模型可能看起来像

<ListBox ItemsSource="{Binding LapTimes}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Time}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
public class MainViewModel // Should implement INotifyPropertyChange
{
    public MainViewModel()
    {
        LapTimes = new ObservableCollection<TimeSpan>();
    }
    public ObservableCollection<TimeSpan> LapTimes { get; private set; }

    private void CalculateStuff()
    {
        // calculate times
    }
}
public类MainViewModel//应实现INotifyPropertyChange
{
公共主视图模型()
{
圈数=新的可观测集合();
}
公共可观测集合重叠时间{get;private set;}
私有void CalculateStuff()
{
//计算次数
}
}

列表框是从哪里填充的/how?@Bmo谢谢我更新了问题。谢谢,但数据没有连接到数据库或任何东西?这没关系。如果有具有特性的对象列表,则可以创建对象列表。然后可以使用linq查询这些对象的属性。在您的情况下,对象将记录时间和您想要的任何其他信息,然后将其添加到列表中。