You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
using System;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows;
|
|
|
|
namespace Microsoft.Windows.Controls.PropertyGrid.Implementation.EditorProviders
|
|
{
|
|
public class TextBoxEditorProvider : ITypeEditorProvider
|
|
{
|
|
FrameworkElement _editor;
|
|
|
|
public TextBoxEditorProvider()
|
|
{
|
|
_editor = new TextBox();
|
|
}
|
|
|
|
public void Initialize(PropertyItem propertyItem)
|
|
{
|
|
ResolveBinding(propertyItem);
|
|
}
|
|
|
|
public FrameworkElement ResolveEditor()
|
|
{
|
|
return _editor;
|
|
}
|
|
|
|
private void ResolveBinding(PropertyItem property)
|
|
{
|
|
var binding = new Binding(property.Name);
|
|
binding.Source = property.Instance;
|
|
binding.ValidatesOnExceptions = true;
|
|
binding.ValidatesOnDataErrors = true;
|
|
|
|
if (property.IsWriteable)
|
|
binding.Mode = BindingMode.TwoWay;
|
|
else
|
|
binding.Mode = BindingMode.OneWay;
|
|
|
|
BindingOperations.SetBinding(_editor, TextBox.TextProperty, binding);
|
|
}
|
|
}
|
|
}
|
|
|