WPFのTelerik GridViewがclassからデータ表示になっている
データがMVVM方式でclassからデータを流し込むので
Cellの位置は取得出来ないらしい GetIndexとかの関数が無かった
仕方ないので、Telerik.Windows.Controls.GridViewCellInfo s = GridView1.SelectedCells[0];
上記より、選択した行のデータを取得後
var c = s.Column; でカラム情報を取得
var item = (ATR_ScheduleView)s.Item;
g作業者ID = GetItem(item, typeof(ATR_ScheduleView), c.Header);
private string GetItem(object targetobj, Type t, string iName) {
string vValue = "";
//using System.Reflection;が必要
//メンバを取得する
MemberInfo[] members = t.GetMembers(
BindingFlags.Public |
BindingFlags.Instance |
BindingFlags.DeclaredOnly);
foreach (MemberInfo m in members) {
//メンバの型と、名前を表示する
//メンバの型がプロパティなら
if (m.MemberType.ToString().Equals("Property") && m.Name == iName) {
PropertyInfo pr = t.GetProperty(m.Name);
object resobj = pr.GetValue(targetobj, null);
vValue = resobj.ToString();
}
}
return vValue;
}
取得した行データ(item)のヘッダ位置から選択したcellの値を取得
0 件のコメント:
コメントを投稿