Cómo agregar un objeto a ObservableCollection objeto de la lista? Tengo clase llamada «Assest» y he creado ObservableCollection lista de Activos y quiero que se mantenga como la adición y la eliminación de los elementos de que ObservableCollection lista. Ahora me estoy poniendo de error cuando intento agregar un elemento a ObservableCollection.

Aquí está mi código.

    private static ObservableCollection<Assest> _collection = null;

    public ObservableCollection<Assest> AssestList
    {
        get
        {
            if (_collection == null)
            {
                _collection = new ObservableCollection<Assest>();
            }
            return _collection;
        }
        set { _collection = value; }
    }

    public static ObservableCollection<Assest> ToObservableCollection(List<Assest> assestList)
    {
        return new ObservableCollection<Assest>(assestList);
    }

    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = this;
        LoadData();
        comboBox1.ItemsSource = AssestList;
    }

    private void LoadData()
    {
        Assest assest = new Assest() { AppID = "1", AssestName = "AppName", AppDescription = "Description" };
        Assest assest2 = new Assest { AppDescription = "Des2", AppID = "2", AssestName = "hi" };

        List<Assest> assList = new List<Assest> {assest, assest2};

        ObservableCollection<Assest> generatedAssestList = ToObservableCollection(assList);
        AssestList = generatedAssestList;
    }

    //Here I get an error.

    public static void AddAppToObservalCollection(Assest ass)
    {
        _collection.Add(ass);
    }

Entonces, ¿Cómo superar este tipo de situaciones. Gracias a todos.

  • Qué tipo de error qué se obtiene? «Error» no es suficiente la descripción del error.
InformationsquelleAutor cp100 | 2013-03-07

2 Comentarios

  1. 3

    El código es un poco desordenado, no está claro por qué necesita tanto AssestList y _collection.

    Sin embargo, creo que usted necesita para reemplazar

    _collection.Add(ass);

    con

    AssestList.Add(ass);
    • Usted puede llamar a la no-propiedades estáticas de métodos estáticos. AssestList no es estática, que es la razón por la que te da un error. Agregar directamente a _collection o cambiar el AssestList propiedad estática.
  2. 1

    _collection objeto todavía null mientras llama a la función de captador de AssestList. Así, cuando se utiliza «_collection.Agregar(culo);», puede ser null (y, por cierto _collection es privada, por lo que no se puede acceder a él desde la función estática)

    Para evitar esto, utilice siempre AssestList.

Dejar respuesta

Please enter your comment!
Please enter your name here