我有两个独立的类:YourBooks和NewBook。 YourBooks有一个私人的Observable Collection。我希望NewBook能够更新Observable Collection的值。但是YourBooks是XAML类(继承于Page)。程序的逻辑是如此,我无法继承它。有没有更新我的Observable集合的方法?
我觉得我遗漏了一点,你们的确做到了。我忘了提到NewBook是ContentDialog的事实。确保只能从YourBooks初始化NewBook。 YourBooks是Page类型,可创建一个名为NewBook的自定义对话框。
答案 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);
}
}