1

次のように xaml でコンボボックスを作成しました。

ComboBox x:Name="cbTest" SelectedValue="{Binding TestSpeed}" HorizontalAlignment="Left" Margin="0,10,0,0" Width="250" SelectionChanged="cbTest_SelectionChanged"/>

コンボボックスには次の項目が含まれています。

        for (int i = 1; i < 6; i++)
            cbTest.Items.Add(i);

コンボボックスにアイテムが表示されますが、以前に選択した SelectedValue が表示されません。これはプロパティです:

private short _testSpeed;
public short TestSpeed
{
    get
    {
        return _testSpeed;
    }
    set
    {
        _testSpeed= value;
        NotifyPropertyChanged();
    }
}

そして、これは SelectedChanged の項目を変更したときです

 _vm.TestSpeed = (short)Convert.ToInt16(cbTest.SelectedValue);

TestSpeed はデバッグで正しいデータを提供しますが、selectedValue バインディングが機能していません!?

4

1 に答える 1

0

あなたの状況では、バインディングモードはOneWayToSourceのようでなければなりませんSelectedValue="{Binding Path=TestSpeed, Mode=OneWayToSource}。TestSpeed が動作している場合、stringまたはintそれが動作している場合short- 動作していない場合。short使用または使用するために特定のコンバーターを作成する必要があると思いますが、int心配する必要はありません

于 2013-03-09T16:47:11.023 に答える