C#でプロパティに既定値を設定する方法を定義しようとしています。nullのときにプロパティの既定値を設定する
私は多くの要素TextBoxとデフォルト値を復元するためのボタンがあります。ユーザーがボタンをクリックすると、TextBoxのコンテンツがデフォルトに設定されます。
私の考えは、値をnullに設定し、setterで値をチェックし、値がnullの場合はdefaultを設定することです。
[DefaultValue("default")]
public String ExamplePropertie
{
get
{
return _myProp;
}
set
{
if (value == null)
default(ExamplePropertie); // Not working
else
_myProp = value;
OnPropertyChanged(nameof(ExamplePropertie));
}
}
しかしdefault(ExamplePropertie)
ではありません。私はこのような何かをやってみたかった
<TextBox Grid.Row="1" Grid.Column="1"
Style="{StaticResource TextBoxStyle}"
Text="{Binding ExamplePropertie,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
各バインドさ要素の場合:テキストボックスの
private void SetDefault()
{
Grid actualItem = tabControl.SelectedContent as Grid;
if (actualItem != null)
{
foreach (object elt in actualItem.Children)
{
if (elt.GetType() == typeof(TextBox))
{
TextBox box = elt as TextBox;
box.Text = null;
}
}
}
}
例:
は私のコードがありますそれを行う良い方法。 [DefaultValue(value)]
で定義された値を設定するにはどうすればよいですか?
プロパティの横に 'const'値を導入し、属性とセッターのコードの両方に使用する必要があります。 –
コードがバインディングを使用していないため、値をテキストボックスに直接割り当てています。データバインドとは、コントロールにデータの検索場所を指示することを意味します。どのようなアプリケーションを構築していますか?例えばWPFでは、バインディング式のデフォルト値を指定することができます –
コード 'default(ExamplePropertie)'は、 'type'のデフォルト値を取得します。 'DefaultValue'属性はそれとは無関係です。 – Baldrick