は、現在、私のリポジトリが私のDBからのデータを示していますIQueryable
オブジェクトを返したIQueryableオブジェクトであり、私はグリッドで使用するためにBindingSource
にこれをバインドしますアクセス内容ソースは
public void BindTo(IQueryable elements)
{
BindingSource source = new BindingSource();
source.CurrentChanged += new EventHandler(source_CurrentChanged);
source.DataSource = elements;
elementNavigator.BindingSource = source;
elementGridView.DataSource = source;
}
これをよく働く。しかし、ユーザーがグリッド内の行をクリックしたときに何かしたいと思っています。私はユーザーが選択している要素を特定するのに苦労しています。私の見解では
:
private void source_CurrentChanged(object sender, EventArgs e)
{
_presenter.ElementChanged(sender, e);
}
私のプレゼンターに:私は以下の持っている
public void ElementChanged(object sender, EventArgs e)
{
BindingSource source = (BindingSource)sender;
// Here I need to get the ID of the selected element in the source.Current property.
// HOW?
}
これは、[OK]を動作しているようです - とそのsource.Current
をデバッグするときに、私が見ることができるが、データが含まれています
? source.Current
{ BodyId = 1, IsInUse = true, IsValid = true, CreateDate = {04/07/2006 09:31:59}, LastUpdateDate = {04/07/2006 09:31:59}, StatusDescShort = "Exist" ... }
BodyId: 1
CreateDate: {04/07/2006 09:31:59}
IsInUse: true
IsValid: true
LastUpdateDate: {04/07/2006 09:31:59}
StatusDescShort: "Exist"
しかし、私はの値にどのようにアクセスする可能性がありますか?。私はここで本当に明白な何かを見逃していると感じています(初めてではありません)。
うーん読書いくつか私は「根本的に間違っているとshouldnだと思うし始めていますIQueryableをまったく使用しておらず、リストにバインドする必要があります。何かご意見は? – Martin