using System;
using System.Collections.ObjectModel;
class How {
public ObservableCollection<int> Coll {
get { return coll_; }
set {
Console.WriteLine("Setter for Coll Called!");
coll_.Clear();
foreach (int i in value)
coll_.Add(i);
}
}
public string Field {
get { return field_; }
set {
Console.WriteLine("Setter for field called");
field_ = value;
}
}
// To confirm the internal coll_ is actually set
public void Test() {
foreach(int i in coll_)
Console.Write(i + " ");
}
public How() {
coll_ = new ObservableCollection<int>();
field_ = "";
}
private ObservableCollection<int> coll_;
private string field_;
}
public class Test {
public static void Main() {
var how = new How {
Coll = { 1, 2, 3, 4, 5 },
Field = "Test Field",
};
Console.Write("Coll: ");
foreach (int i in how.Coll)
Console.Write(i + " ");
Console.WriteLine();
Console.WriteLine("Field: " + how.Field);
Console.Write("Internal coll_: ");
how.Test();
Console.WriteLine();
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuT2JqZWN0TW9kZWw7CgpjbGFzcyBIb3cgewogICAgcHVibGljIE9ic2VydmFibGVDb2xsZWN0aW9uPGludD4gQ29sbCB7CiAgICAgICAgZ2V0IHsgcmV0dXJuIGNvbGxfOyB9CiAgICAgICAgc2V0IHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlNldHRlciBmb3IgQ29sbCBDYWxsZWQhIik7CiAgICAgICAgICAgIGNvbGxfLkNsZWFyKCk7CiAgICAgICAgICAgIGZvcmVhY2ggKGludCBpIGluIHZhbHVlKQogICAgICAgICAgICAgICAgY29sbF8uQWRkKGkpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RyaW5nIEZpZWxkIHsKICAgICAgICBnZXQgeyByZXR1cm4gZmllbGRfOyB9CiAgICAgICAgc2V0IHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlNldHRlciBmb3IgZmllbGQgY2FsbGVkIik7CiAgICAgICAgICAgIGZpZWxkXyA9IHZhbHVlOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gVG8gY29uZmlybSB0aGUgaW50ZXJuYWwgY29sbF8gaXMgYWN0dWFsbHkgc2V0CiAgICBwdWJsaWMgdm9pZCBUZXN0KCkgewogICAgCWZvcmVhY2goaW50IGkgaW4gY29sbF8pCiAgICAJCUNvbnNvbGUuV3JpdGUoaSArICIgIik7CiAgICB9CgogICAgcHVibGljIEhvdygpIHsKICAgICAgICBjb2xsXyA9IG5ldyBPYnNlcnZhYmxlQ29sbGVjdGlvbjxpbnQ+KCk7CiAgICAgICAgZmllbGRfID0gIiI7CiAgICB9CgogICAgcHJpdmF0ZSBPYnNlcnZhYmxlQ29sbGVjdGlvbjxpbnQ+IGNvbGxfOwogICAgcHJpdmF0ZSBzdHJpbmcgZmllbGRfOwp9CgpwdWJsaWMgY2xhc3MgVGVzdCB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpIHsKICAgICAgICB2YXIgaG93ID0gbmV3IEhvdyB7CiAgICAgICAgICAgIENvbGwgPSB7IDEsIDIsIDMsIDQsIDUgfSwKICAgICAgICAgICAgRmllbGQgPSAiVGVzdCBGaWVsZCIsCiAgICAgICAgfTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZSgiQ29sbDogIik7CiAgICAgICAgZm9yZWFjaCAoaW50IGkgaW4gaG93LkNvbGwpCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoaSArICIgIik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkZpZWxkOiAiICsgaG93LkZpZWxkKTsKICAgICAgICAKICAgICAgICBDb25zb2xlLldyaXRlKCJJbnRlcm5hbCBjb2xsXzogIik7CiAgICAgICAgaG93LlRlc3QoKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgfQp9