2014-09-22 5 views
-2

Невозможно решить эту ошибку в части коллекции. Кто-нибудь может помочь? Он говорит, что myCollection не удалось найти, но я объявил статическую информацию об этом! Я пытаюсь поместить значения в графическое программное обеспечение (sparrowchart), чтобы его значение обновлялось каждую секунду.Неверное имя типа или пространства имен 'myCollection'.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Navigation; 
using Microsoft.Phone.Controls; 
using Microsoft.Phone.Shell; 
using System.Windows.Threading; 
using System.Collections.ObjectModel; 
using System.Collections; 

namespace Project 
{ 
public partial class temp : PhoneApplicationPage 
{ 

    double Min = 50; 
    double Max = 0; 
    double[] AvgTemp = new double[101]; 

    public temp() 
    { 
     InitializeComponent(); 
    } 

    private void Pivot_Loaded(object sender, RoutedEventArgs e) 
    { 
     { 
      DispatcherTimer time = new DispatcherTimer(); 
      time.Tick += time_Tick; 
      time.Interval = TimeSpan.FromSeconds(1); 
      time.Start(); 
     } 
    } 

    int a = 0,t=0; 
    void time_Tick(object sender, EventArgs e) 
    { 
     DispatcherTimer time = new DispatcherTimer(); 
     Random rnd = new Random(); 
     double TempRandom = rnd.Next(100, 500); //generate random number 
     double TempRandom2 = TempRandom/10; 


     CurrentTemp.Text = TempRandom2.ToString("0.0"); 
     ViewModel.myCollection.Add(new Model(t++, TempRandom2)); 
     var myCollection = new myCollection(); 
      if(myCollection[t] == 10) 
      { 
       myCollection.RemoveAt(t); 
       t--; 
      } 


     if (TempRandom2 > Max) 
     { 
      Max = TempRandom2; //Highest Temp = Current Temp 

      HighestTemp.Text = Max.ToString("0.0"); 
     } 

     if (TempRandom2 < Min) 
     { 
      Min = TempRandom2; 
      LowestTemp.Text = Min.ToString("0.0"); //Lowest Temp = Current Temp 
     } 

     AvgTemp[a++ % 100] = TempRandom2; 
     if (a > 100) 
      AverageTemp.Text = AvgTemp.Average().ToString("0.0"); 
     else 
      AverageTemp.Text = (AvgTemp.Sum()/a).ToString("0.0"); 
    } 
} 

public class Model 
{ 
    public double X { get; set; } 
    public double Y { get; set; } 

    public Model(double x, double y) 
    { 
     X = x; 
     Y = y; 
    } 
} 

// Create a ViewModel 
public class ViewModel 
{ 
    public static ObservableCollection<Model> myCollection { get; set; } 
    public ViewModel() 
    { 
     myCollection = new ObservableCollection<Model>(); 
    } 

} 
    } 
+0

'new Random()' может давать вам одинаковые номера каждый раз, если вы воссоздаете их в течение небольшого временного интервала. Вы должны указать начальное значение и только создать объект «Случайный» один раз, а затем повторно использовать его ... – ChrFin

+0

Почему вы создаете новую * пустую коллекцию, удаляя элемент из этой * пустой * коллекции, перезаписывая эту коллекцию с помощью другой тип пустой коллекции с другим типом элемента, а затем полностью отбросить ее? – Rawling

+0

Извините, я довольно новичок в программировании на C#. –

ответ

1

Похоже, вы удаляете конкретный индекс, а затем использовать RemoveAt():

Collection.RemoveAt(t); 

Remove(T item) требует T пункта, а RemoveAt(int index) принимает индекс.

+0

Хотя теперь он узнает, что происходит, когда он индексирует в пустой список ... – Rawling

+0

Ничего себе, он удалил некоторые ошибки, которые у меня есть! Теперь остается «var Collection = new List ();» thats, дающий мне только ошибку –

+0

какая ошибка ??? –

Смежные вопросы