Как сделать приватную переменную видимой для выбора классов - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть два независимых класса: YourBooks и NewBook. YourBooks имеет частную коллекцию Observable. Я хочу, чтобы NewBook ​​мог обновлять значения Observable Collection. Но YourBooks - это класс XAML (наследует Page). И логика программы такова, что я не могу ее унаследовать. Есть ли способ обновить мою коллекцию Observable?

Я чувствую, что есть один момент, который я пропустил, и один, который вы, люди, сделали. Я забыл упомянуть тот факт, что NewBook ​​является ContentDialog. Гарантируется, что NewBook ​​инициализируется только с YourBooks. YourBooks относится к типу Page, который создает настраиваемый диалог под названием NewBook.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Очень простой, но я думаю, что это должно привести вас в правильном направлении:

public class temp
{
    private ObservableCollection<int> _myCollection;
    public temp()
    {
        _myCollection = new ObservableCollection<int>();
    }

    public void addInt(int myint)
    {
        _myCollection.Add(myint);
    }
}

Затем что-то вроде добавьте к вашему ObservableCollection:

var tempthing = new temp();
tempthing.addInt(5);
tempthing.addInt(6);

Изменить (на основе вашего комментария). Если я правильно понимаю, почему бы не передать YourBooks на NewBook?

public class YourBooks
{
    private ObservableCollection<int> _myCollection;
    public YourBooks()
    {
        _myCollection = new ObservableCollection<int>();
        _myCollection.Add(4);
        var newBook = new NewBook(this);
    }

    public void addInt(int myint)
    {
        _myCollection.Add(myint);
    }
}

public class NewBook
{
    public YourBooks YourBooks { get; set; }
    public NewBooks(YourBooks yourBooks)
    {
        YourBooks = yourBooks
        addSomething();
    }

    public void addSomething()
    {
        YourBook.addInt(5);
        YourBook.addInt(6);
    }
}
0 голосов
/ 07 сентября 2018

Можете ли вы создать 'setter' / 'getter' для этого varaible? Открытый метод, который обращается к частному

public void SetObservableCollection(List<Object> value)
{
   ObservableCollection = value;
}

// Or maybe...
public void AddItemToObservableCollection(Object value)
{
   ObservableCollection.add(value)
}
...