1

MVVMを使用するアプリケーションがあります。ViewModelのプロパティに接続してComboBoxのデータバインディングを設定しようとしています。アプリケーションを実行すると、次のエラーメッセージが表示されます。

Message='Provide value on 'System.Windows.Data.Binding' threw an exception.' Line number '11' and line position '176'.

この問題は、XAMLの次の行で発生します。

<ComboBox x:Name="schoolComboBox" HorizontalAlignment="Left" Margin="25,80,0,0" VerticalAlignment="Top" Width="250" FontSize="16" ItemsSource="{Binding LocationList}" SelectedItem="{Binding Source=LocationPicked}" />

以下は私が使おうとしているViewModelです。

using QMAC.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Windows;

namespace QMAC.ViewModels
{
  class MainViewModel : ViewModelBase
  {
    Address address;
    Location location;
    private string _locationPicked;

    public MainViewModel()
    {
        address = new Address();
        location = new Location();
    }

    public List<string> LocationList
    {
        get { return location.site; }
        set
        {
            OnPropertyChanged("LocationList");
        }
    }

    public string LocationPicked
    {
        get { return _locationPicked; }
        set
        {
            _locationPicked = value;
            MessageBox.Show(_locationPicked);
            OnPropertyChanged("LocationPicked");
        }
    }
  }
}

データバインディングで機能するようにプロパティを正しく設定していませんか?

4

1 に答える 1

3

SelectedItemを正しくバインドしていません。Pathではなくバインディングにを設定する必要がありSourceます。データコンテキストを MainViewModel に設定したと仮定しています。プロパティは MainViewModel にあるため、LocationPickedを設定する必要はありませんBinding.Source。バインディングを変更して、 を使用して SelectedItem のパスを設定します{Binding LocationPicked

于 2013-03-01T21:23:47.707 に答える