2

Silverlightのテキストボックスの形式を変更する必要があります。データはMVVMを介してバインドされています。

たとえば、intプロパティがある場合、setterの値に1を加算して、OnPropertyChangedを呼び出します。テキストボックスに1を入力してフォーカスを失った場合、テキストは2に変更されると思いますが、実際にはテキストは変更されず、1のままです。

<TextBox Name="txtTime" Text="{Binding PersonID, Mode=TwoWay}" />

        private int _personID;
        public int PersonID
        {
            get 
            {
                return _personID;
            } 
            set
            {
                    _personID = value + 1;
                    OnPropertyChanged("PersonID");
             } 
        }

何か問題でもありますか?これを行う正しい方法は何ですか?

どうもありがとう

4

1 に答える 1

2

TextBoxが値を設定している場合、getは呼び出されません。これに対する解決策は、OnPropertyChanged( "PersonID")をDispatcher.BeginInvoke(()=> OnPropertyChanged( "PersonID"));に置き換えるようなものです。 。

public int PersonID
{
        get
        {
            return _personID;
        } 
        set
        {
            _personID = value + 1;
            Dispatcher.BeginInvoke(() => OnPropertyChanged("PersonID"));
        }
}

これがあなたの質問に答えることを願っています

于 2012-10-23T14:19:26.170 に答える