如何使私有变量可见以选择类

时间:2018-09-07 13:46:46

标签: c# uwp observablecollection uwp-xaml

我有两个独立的类:YourBooks和NewBook。 YourBooks有一个私人的Observable Collection。我希望NewBook能够更新Observable Collection的值。但是YourBooks是XAML类(继承于Page)。程序的逻辑是如此,我无法继承它。有没有更新我的Observable集合的方法?

我觉得我遗漏了一点,你们的确做到了。我忘了提到NewBook是ContentDialog的事实。确保只能从YourBooks初始化NewBook。 YourBooks是Page类型,可创建一个名为NewBook的自定义对话框。

2 个答案:

答案 0 :(得分:0)

您可以为该变量创建一个“ setter” /“ getter”吗? 一种访问私有方法的公共方法

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

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

答案 1 :(得分:0)

非常基本,但是我认为这应该使您朝正确的方向前进:

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);
    }
}