以下のようにWPFでXAMLで大文字を小文字に変換しようとしました:
<TextBox Height="86" CharacterCasing="Upper"/>
TextBlock
、Label
およびで同じシナリオを実現したいButton
。
どうすればいいですか?
値コンバーターを使用する必要があります。
public class ToUpperValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var str = value as string;
return string.IsNullOrEmpty(str) ? string.Empty : str.ToUpper();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
これを行う 1 つの方法は、イベントを使用NotifyOnTargetUpdated
して処理することです。TextChanged
XAML
<TextBlock Name="TB" Text="{Binding Path=YourProperty, NotifyOnTargetUpdated=True}"
TargetUpdated="TB_TargetUpdated" />
コードビハインド
private void TB_TargetUpdated(object sender, DataTransferEventArgs e)
{
TB.Text = TB.Text.ToUpper();
}
それを見てください:すべてのテキストを大文字/大文字にする方法は?.
より一般的には、値を変換してコントロールに入れたいときはいつでも、コンバーターを考えて自分で書きます (または既に存在する場合はそれを使用します)。
コンバーターに関する追加のドキュメントは、http ://wpftutorial.net/ValueConverters.html にあります。