問題があります。私はstring
ブランドの車クラスを持っています、string
モデル、.. 私はまた、データを含むComboBox
のビューを持っています。 ComboBox
「carBrand」またはComboBox
「carModel」の項目を選択してボタンをクリックすると、新しい車のオブジェクトを作成します。しかし、ボタンをクリックした後、から項目を選択したにもかかわらず、carBrand.SelectedValue.ToString()
はNull
の値をcarModelと同じ値で返します。私は誰かがこの問題を修正する私を助けることができると思います
ComboBoxのMVVM SelectedValueがNULLを返します
<!--CarModel ComboBox-->
<ComboBox x:Name="carModel" Style="{StaticResource combobox}" Grid.Column="1"
Margin="20,15,17,14"
ItemsSource="{Binding ModelSelectedBrand}" DisplayMemberPath="c_model" MouseLeave="carModel_MouseLeave"
Grid.Row="2" VerticalAlignment="Center" Height="30" MouseDoubleClick="carModel_MouseDoubleClick">
</ComboBox>
<!--CarYear EditableLabel-->
<Label x:Name="carYear" Content="{Binding ElementName=carModel, Path=SelectedValue.c_year}" Margin="20,14,17,14"
Style="{StaticResource EditableLabelStyle}" Foreground="White"
Grid.Column="1" Grid.Row="5" VerticalAlignment="Center" Height="30">
</Label>
<!--CarKM EditableLabel-->
<Label x:Name="carKm"
Content="{Binding ElementName=carModel, Path=SelectedItem.c_km}" Style="{StaticResource EditableLabelStyle}"
Margin="20,14,17,14"
Grid.Column="1" Grid.Row="3" Foreground="White" VerticalAlignment="Center" Height="30">
</Label>
:
Add a1 = new Add();
c_car m1 = param as c_car;
a1.DataContext = m1;
a1.ShowDialog();
if (a1.DialogResult.HasValue && a1.DialogResult.Value)
{
m1.c_brand = a1.carBrand.SelectedValue.ToString(); //causes NullReferenceException
m1.c_model = a1.carModel.SelectedValue.ToString(); //causes NullReferenceException
m1.c_year = a1.carYear.Content.ToString(); //this works perfectly
m1.c_km = Int32.Parse(a1.carKm.Content.ToString()); //this also works properly
//...
}
今私のビュークラス:私のVMClassで
。
ありがとうございます!
comboboxのselecteditemに適切なアイテムをバインドしようとします – sexta13
あなたの 'carBrand.SelectedValue'はヌルですか?私はあなたのXAMLでこの要素を見ることができません。理想的には、 'SelectedValue'をビューモデルのプロパティにバインドして(ここで' ItemsSource'をバインドしている場所)、そこから取得するのが理想的です。 – vesan