私は一般的に、ユーザには役に立たない場合に表示しないことを選択できるTreeListColumnとしてidフィールドを持っています。そうすれば、私は自分のオブジェクトIDに簡単にアクセスできます。
departmentIdと一致する実際のユーザーにアクセスするために提供された情報に基づいて、いくつかの可能性があります。たとえば、リストにすべてのユーザーがいる場合、linqを使用してtreeListで選択した部門に一致するものだけを取得し、それをデータソースに使用することができます。例えば
:
VB.NET:
Private Sub TreeList1_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeList1.FocusedNodeChanged
If e.Node IsNot Nothing Then
Dim id As Integer = CInt(e.Node.GetValue("Id"))
Dim ds As List(Of UserInfo) = (From user As UserInfo In UserList Where user.DeptId = id Select user).ToList
GridControl1.DataSource = ds
GridControl1.RefreshDataSource()
End If
End Sub
のC#:
private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
{
if (e.Node != null) {
int id = Convert.ToInt32(e.Node.GetValue("Id"));
List<UserInfo> ds = (from user in UserList where user.DeptId == id select user).ToList;
GridControl1.DataSource = ds;
GridControl1.RefreshDataSource();
}
}
あなたの部門オブジェクトが実際にプロパティとしてそのユーザーのリストを持っている場合は、あなただけアクセスすることができましたtreeListデータソースのそのインスタンスから直接リストし、グリッドのデータソースとして使用します。ユーザーデータを取得/保存するための方法にかかわらず、focusedNodeChangedイベントを処理する必要があります。
出典
2012-01-20 16:22:38
Jay
私はそれを試してみます。どうもありがとう! – bnPYSse