DataGridバインディングでオブジェクトを指定するにはどうすればよいですか? 私のデータグリッドにはItemsSource="{Binding Source=TripsCollection}"
、AutoGenerateColumns="False"
および列が次のように設定されています。
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding TripID}" IsReadOnly="True"></DataGridTextColumn>
...
</DataGrid.Columns>
しかし、エラーがあります:
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'TripID' プロパティが 'object' ''Char' (HashCode=7209070)' に見つかりません。BindingExpression:Path=TripID; DataItem='Char' (HashCode=7209070); ターゲット要素は 'TextBlock' (Name='') です。ターゲット プロパティは 'Text' (タイプ 'String') です。
オブジェクトを Trip オブジェクトに設定するにはどうすればよいですか?
DataContext クラス:
private ObservableCollection<Trip> _tripsCollection;
public ObservableCollection<Trip> TripsCollection
{
get { return _tripsCollection; }
set { _tripsCollection = value; NotifyPropertyChanged("TripsCollection"); }
}
旅行クラス:
[Table(Name="Trips")]
public class Trip
{
private uint _tripID;
private string _start;
private string _end;
private DateTime _date;
private double _length;
private string _note;
private uint _carID = 0;
private EntityRef<Car> _Car;
..and properties for this fields..
}
DataContext の設定
public MainWindow()
{
InitializeComponent();
string connString = @"Data Source=.\SQLEXPRESS; Integrated security=SSPI; Connect Timeout=30"; // User Instance=True";
conn = new SqlConnection(connString);
conn.Open();
LogBookViewModel lbvm = new LogBookViewModel(conn);
DataContext = lbvm;
}