subj と MVVM のツールキットから PropertyGrid を使用しています。プロパティ値を PropertyGrid からクリップボードにコピーしたいと思います。最良の方法は、コピーする値を持つセルの内容を選択してコピーすることです。または、右クリック メニューを使用します。やり方がわかりません。助けていただけますか?
質問する
861 次
3 に答える
3
解決策を見つけました。それは非常に簡単で、ホームページに記載されています..
最初に、必要なプロパティに必要なエディターを表すユーザー コントロールを作成する必要があります。組み込みのエディターではテキストの編集が許可されているため、読み取り専用の独自のエディターを作成しました。
XAML
<UserControl x:Class="WhiteRepositoryExplorer.Views.ReadOnlyTextEditor"
...
x:Name="_uc">
<xctk:AutoSelectTextBox IsReadOnly="True" Text="{Binding Value, ElementName=_uc}" AutoSelectBehavior="OnFocus" BorderThickness="0" />
</UserControl>
Xceed.Wpf.Toolkit.PropertyGrid.Editors.ITypeEditor
必ずインターフェースを実装してください:
コードビハインド
public class ReadOnlyTextEditor : UserControl, ITypeEditor
{
public ReadOnlyTextEditor()
{
InitializeComponent();
}
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(string),
typeof(ReadOnlyTextEditor), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public string Value
{
get { return (string)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public FrameworkElement ResolveEditor(PropertyItem propertyItem)
{
Binding binding = new Binding("Value");
binding.Source = propertyItem;
binding.Mode = propertyItem.IsReadOnly ? BindingMode.OneWay : BindingMode.TwoWay;
BindingOperations.SetBinding(this, ValueProperty, binding);
return this;
}
}
2 番目に、モデルで、属性を使用して必要なプロパティ用に作成したエディターを指定する必要があります。
[Editor(typeof(ReadOnlyTextEditor), typeof(ReadOnlyTextEditor))]
[Description("Unique (int the XML scope) control attribute of string format")]
public string Id
{
get { return _id; }
}
終わり。レンガのようにシンプル..
于 2013-01-02T09:42:57.837 に答える