0

テキストボックスとバインド可能なソースの間の入力の形式を計算/変更する必要があります。私がこれを達成しようとしている方法は、コンバーターの助けを借りています。

コンバータ:

    public class ParameterConverter : IValueConverter
{

    public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return string.Empty;

        string originalParameValue = value.ToString();

        string fixedParameterValue = string.Format("@_{0}", originalParameValue);

        return fixedParameterValue;
    }

    public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new System.NotImplementedException();
    }
}

XAML:

    <Window.Resources>
    <converters:ParameterConverter x:Key="parameterConverter"  />
</Window.Resources>

<Grid>
    <TextBox Text="{Binding ParameterA, Converter={StaticResource parameterConverter}}"/>
</Grid>

問題は、そのコンバーターが一度しか機能していないことです。それは正しいアプローチですか(コンバーターを意味します)、または別のアプローチがありますか?

4

2 に答える 2

0

データ コンテキストは INotifyPropertyChanged を実装しており、ParameterA が変更されるたびに PropertyChanged が呼び出されていますか? テキストボックスの内容を更新する必要があることを誰も通知していないようです。

于 2013-07-03T19:44:34.817 に答える
0

おそらくバインディング モードが双方向ではなく、プロパティの発火プロパティが変更された可能性があります。

于 2013-07-03T18:42:47.660 に答える