Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XElementValuePropertyDescriptor.cs
Go to the documentation of this file.
1using System;
3
5
6internal sealed class XElementValuePropertyDescriptor : XPropertyDescriptor<XElement, string>
7{
9
10 public override bool IsReadOnly => false;
11
13 : base("Value")
14 {
15 }
16
17 public override object GetValue(object component)
18 {
19 _element = component as XElement;
20 if (_element == null)
21 {
22 return string.Empty;
23 }
24 return _element.Value;
25 }
26
27 public override void SetValue(object component, object value)
28 {
29 _element = component as XElement;
30 if (_element != null)
31 {
32 _element.Value = value as string;
33 }
34 }
35
36 protected override void OnChanged(object sender, XObjectChangeEventArgs args)
37 {
38 if (_element == null)
39 {
40 return;
41 }
42 switch (args.ObjectChange)
43 {
44 case XObjectChange.Add:
45 case XObjectChange.Remove:
46 if (sender is XElement || sender is XText)
47 {
48 OnValueChanged(_element, EventArgs.Empty);
49 }
50 break;
51 case XObjectChange.Value:
52 if (sender is XText)
53 {
54 OnValueChanged(_element, EventArgs.Empty);
55 }
56 break;
57 }
58 }
59}
override void OnChanged(object sender, XObjectChangeEventArgs args)
static readonly EventArgs Empty
Definition EventArgs.cs:9