本文整理汇总了C#中PropertyItem类的典型用法代码示例。如果您正苦于以下问题:C# PropertyItem类的具体用法?C# PropertyItem怎么用?C# PropertyItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PropertyItem类属于命名空间,在下文中一共展示了PropertyItem类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateComboBox
protected virtual FrameworkElement CreateComboBox(PropertyItem pi, PropertyControlFactoryOptions options)
{
var cbox = new ComboBox() { IsEditable = true };
cbox.SetBinding(Selector.SelectedItemProperty, new Binding(pi.Descriptor.Name + ".Text"));
cbox.SetBinding(ItemsControl.ItemsSourceProperty, new Binding(pi.Descriptor.Name + ".Values"));
return cbox;
}
示例2: DateTimeEditor
/// <summary>
/// Constructor
/// </summary>
/// <param name="label"></param>
/// <param name="property"></param>
public DateTimeEditor(PropertyLabel label, PropertyItem property)
: base(property)
{
currentValue = property.Value;
property.PropertyChanged += property_PropertyChanged;
property.ValueError += property_ValueError;
contentPanel = new StackPanel();
this.Content = contentPanel;
datePicker = new DatePicker
{
Visibility = Visibility.Visible,
Margin = new Thickness(0),
VerticalAlignment = VerticalAlignment.Center,
HorizontalAlignment = HorizontalAlignment.Stretch
};
datePicker.CalendarOpened += dtp_CalendarOpened;
datePicker.CalendarClosed += dtp_CalendarClosed;
datePicker.LostFocus += dtp_LostFocus;
contentPanel.Children.Add(datePicker);
datePicker.Focus();
this.ShowTextBox();
}
示例3: PropertyItemValue
/// <summary>
/// Initializes a new instance of the <see cref="PropertyItemValue"/> class.
/// </summary>
/// <param name="property">The property.</param>
public PropertyItemValue(PropertyItem property)
{
if (property == null) throw new ArgumentNullException("property");
this._property = property;
_hasSubProperties = property.Converter.GetPropertiesSupported();
if (_hasSubProperties)
{
object value = property.GetValue();
PropertyDescriptorCollection descriptors = property.Converter.GetProperties(value);
foreach (PropertyDescriptor d in descriptors)
{
_subProperties.Add(new PropertyItem(property.Owner, value, d));
// TODO: Move to PropertyData as a public property
NotifyParentPropertyAttribute notifyParent = d.Attributes[KnownTypes.Attributes.NotifyParentPropertyAttribute] as NotifyParentPropertyAttribute;
if (notifyParent != null && notifyParent.NotifyParent)
{
d.AddValueChanged(value, NotifySubPropertyChanged);
}
}
}
this._property.PropertyChanged += new PropertyChangedEventHandler(ParentPropertyChanged);
}
示例4: PropertyItemValue
/// <summary>
/// Initializes a new instance of the <see cref="PropertyItemValue" /> class.
/// </summary>
/// <param name="property">The property.</param>
public PropertyItemValue(PropertyItem property)
{
if (property == null) throw new ArgumentNullException("property");
_property = property;
_hasSubProperties = property.Converter.GetPropertiesSupported();
if (_hasSubProperties)
{
var value = property.GetValue();
var descriptors = property.Converter.GetProperties(value);
foreach (PropertyDescriptor d in descriptors)
{
_subProperties.Add(new PropertyItem(property.Owner, value, d));
// TODO: Move to PropertyData as a public property
var notifyParent =
d.Attributes[KnownTypes.Attributes.NotifyParentPropertyAttribute] as NotifyParentPropertyAttribute;
if (notifyParent != null && notifyParent.NotifyParent)
{
d.AddValueChanged(value, NotifySubPropertyChanged);
}
}
}
if (property.IsCollection)
{
LoadCollectionValues();
}
_property.PropertyChanged += ParentPropertyChanged;
}
示例5: StringEditor
public StringEditor(PropertyLabel label, PropertyItem property)
: base(property)
{
if (property.PropertyType == typeof(Char))
{
if ((char)property.Value == '\0')
property.Value = "";
}
property.PropertyChanged += property_PropertyChanged;
property.ValueError += property_ValueError;
textBox = new TextBox
{
Height = 20,
Foreground = Property.CanWrite ? Brushes.Black : Brushes.Gray,
BorderThickness = new Thickness(0),
Margin = new Thickness(0),
IsReadOnly = !Property.CanWrite
};
if (null != property.Value)
textBox.Text = property.Value.ToString();
if (Property.CanWrite)
textBox.TextChanged += Control_TextChanged;
Content = textBox;
GotFocus += StringValueEditor_GotFocus;
}
示例6: PersonAdapter
public PersonAdapter(PersonViewModel viewModel)
{
items = new List<Item> ();
foreach (var pg in viewModel.PropertyGroups) {
items.Add (new MainHeaderItem (pg.Title));
foreach (var p in pg.Properties) {
PropertyItem item;
switch (p.Type) {
case PersonViewModel.PropertyType.Phone:
item = new PhonePropertyItem (p);
break;
case PersonViewModel.PropertyType.Email:
item = new EmailPropertyItem (p);
break;
case PersonViewModel.PropertyType.Url:
item = new UrlPropertyItem (p);
break;
case PersonViewModel.PropertyType.Twitter:
item = new TwitterPropertyItem (p);
break;
default:
item = new PropertyItem (p);
break;
}
items.Add (item);
}
}
}
示例7: ButtonEditor
public ButtonEditor(PropertyLabel label, PropertyItem property)
: base(property)
{
var button = new Button { Content = "..." };
button.Click += (sender, e) => MessageBox.Show("Custom dialog comes here...");
this.Content = button;
}
示例8: StringValueEditor
public StringValueEditor(PropertyGridLabel label, PropertyItem property)
: base(label, property)
{
if (property.PropertyType == typeof(Char))
{
if ((char)property.Value == '\0')
property.Value = "";
}
property.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(property_PropertyChanged);
property.ValueError += new EventHandler<ExceptionEventArgs>(property_ValueError);
txt = new TextBox();
txt.Height = 20;
if (null != property.Value)
txt.Text = property.Value.ToString();
//txt.IsReadOnly = !this.Property.CanWrite;
txt.Foreground = this.Property.CanWrite ? new SolidColorBrush(Colors.Black) : new SolidColorBrush(Colors.Gray);
txt.BorderThickness = new Thickness(0);
txt.Margin = new Thickness(0);
if (this.Property.CanWrite)
txt.TextChanged += new TextChangedEventHandler(Control_TextChanged);
this.Content = txt;
this.GotFocus += new RoutedEventHandler(StringValueEditor_GotFocus);
}
示例9: PersonAdapter
public PersonAdapter (PersonViewModel viewModel)
{
items = new List<Item> ();
foreach (var pg in viewModel.PropertyGroups) {
items.Add (new MainHeaderItem (pg.Title));
foreach (var p in pg.Properties) {
PropertyItem item;
if (p.Type == PersonViewModel.PropertyType.Phone) {
item = new PhonePropertyItem (p);
} else if (p.Type == PersonViewModel.PropertyType.Email) {
item = new EmailPropertyItem (p);
} else if (p.Type == PersonViewModel.PropertyType.Url) {
item = new UrlPropertyItem (p);
} else if (p.Type == PersonViewModel.PropertyType.Twitter) {
item = new TwitterPropertyItem (p);
} else {
item = new PropertyItem (p);
}
items.Add (item);
}
}
}
示例10: ComboBoxEditorBase
/// <summary>
/// Constructor
/// </summary>
/// <param name="label"></param>
/// <param name="property"></param>
public ComboBoxEditorBase(PropertyLabel label, PropertyItem property)
: base(property)
{
currentValue = property.Value;
property.PropertyChanged += property_PropertyChanged;
property.ValueError += property_ValueError;
cbo = new ComboBox
{
Visibility = Visibility.Collapsed,
Margin = new Thickness(0),
VerticalAlignment = VerticalAlignment.Center,
HorizontalAlignment = HorizontalAlignment.Stretch
};
cbo.DropDownOpened += cbo_DropDownOpened;
cbo.LostFocus += cbo_LostFocus;
this.InitializeCombo();
pnl = new StackPanel();
pnl.Children.Add(cbo);
this.ShowTextBox();
this.Content = pnl;
}
示例11: UserDefinedPropertyEditorDlg
//=====================================================================
/// <summary>
/// Constructor
/// </summary>
/// <param name="project">The project file reference</param>
public UserDefinedPropertyEditorDlg(SandcastleProject project)
{
PropertyItem propItem;
InitializeComponent();
this.Project = project;
this.UserDefinedProperties = new Collection<PropertyItem>();
lbProperties.Sorted = true;
try
{
foreach(BuildProperty prop in this.Project.GetUserDefinedProperties())
{
propItem = new PropertyItem(this, prop);
this.UserDefinedProperties.Add(propItem);
lbProperties.Items.Add(propItem);
}
}
catch(Exception ex)
{
MessageBox.Show("Unable to load user-defined properties. " +
"Error " + ex.Message, Constants.AppName,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
lbProperties.Sorted = false;
if(lbProperties.Items.Count == 0)
pgProps.Enabled = false;
else
lbProperties.SelectedIndex = 0;
}
示例12: PropertyValueChangedEventArgs
/// <summary>
/// Initializes a new instance of the <see cref="PropertyValueChangedEventArgs"/> class.
/// </summary>
/// <param name="routedEvent">The routed event.</param>
/// <param name="property">The property.</param>
/// <param name="oldValue">The old value.</param>
public PropertyValueChangedEventArgs(RoutedEvent routedEvent, PropertyItem property, object oldValue)
: base(routedEvent, property)
{
Property = property;
NewValue = property.PropertyValue;
OldValue = oldValue;
}
示例13: ImageVaueEditor
public ImageVaueEditor(PropertyGridLabel label, PropertyItem property)
: base(label, property)
{
property.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(property_PropertyChanged);
property.ValueError += new EventHandler<ExceptionEventArgs>(property_ValueError);
_attribute = property.GetAttribute<ImageAttribute>();
if(null == _attribute)
{
_attribute = new ImageAttribute();
_attribute.OnlyImage = false;
}
_grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1d, GridUnitType.Auto) });
_grid.ColumnDefinitions.Add(new ColumnDefinition());
_grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1d, GridUnitType.Auto) });
_grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1d, GridUnitType.Auto) });
_grid.Children.Add(_image);
_grid.Children.Add(_text);
_grid.Children.Add(_removeButton);
_grid.Children.Add(_broswerButton);
_image.SetValue(Grid.ColumnProperty, 0);
_text.SetValue(Grid.ColumnProperty, 1);
_removeButton.SetValue(Grid.ColumnProperty, 2);
_broswerButton.SetValue(Grid.ColumnProperty, 3);
this.Content = _grid;
_broswerButton.Click += BroswerButton_Click;
_removeButton.Click += RemoveButton_Click;
UpdateLabel(property.Value);
_text.GotFocus += Text_GotFocus;
_text.Background = null;
_text.BorderBrush = null;
_text.BorderThickness = new Thickness();
}
示例14: CreateControl
public override FrameworkElement CreateControl(PropertyItem pi, PropertyControlFactoryOptions options)
{
if (pi.Is(typeof(IValueWithSource)))
{
return CreateComboBox(pi, options);
}
return base.CreateControl(pi, options);
}
示例15: ShouldApplyPropertyReadonlyState
public void ShouldApplyPropertyReadonlyState()
{
PropertyItem property = new PropertyItem(
new PropertyGrid(),
new BusinessObject(),
TypeDescriptor.GetProperties(typeof(BusinessObject))["ReadOnlyProperty"]);
Assert.IsTrue(property.IsReadOnly);
}