DevExpress 가 TreeList 부자 노드 CheckState 상 태 를 동기 화 하 는 방법
2028 단어 DevExpressTreeList
주요 기능 코드 는 다음 과 같 습 니 다.
/// <summary>
///
///
/// AfterCheckNode
///eg:e.Node.SyncNodeCheckState(e.Node.CheckState);
/// </summary>
/// <param name="node"> </param>
/// <param name="check"> </param>
public static void SyncNodeCheckState(this TreeListNode node, CheckState check) { SyncNodeCheckState_Child(node, check); SyncNodeCheckState_Parent(node, check); }
private static void SyncNodeCheckState_Child(TreeListNode node, CheckState check)
{
if (node != null)
{
node.DownRecursiveNode(n => n.CheckState = check);
}
}
private static void SyncNodeCheckState_Parent(TreeListNode node, CheckState check)
{
if (node.ParentNode != null)
{
bool _cked = false;
CheckState _ckState;
foreach (TreeListNode cn in node.ParentNode.Nodes)
{
_ckState = cn.CheckState;
if (check != _ckState)
{
_cked = !_cked;
break;
}
}
node.ParentNode.CheckState = _cked ? CheckState.Indeterminate : check;
SyncNodeCheckState_Parent(node.ParentNode, check);
}
}
/// <summary>
/// TreeListNode
/// </summary>
/// <param name="node"> </param>
/// <param name="conditionHanlder"> </param>
public static void DownRecursiveNode(this TreeListNode node, Action<TreeListNode> conditionHanlder)
{
foreach (TreeListNode _childNode in node.Nodes)
{
conditionHanlder(_childNode);
DownRecursiveNode(_childNode, conditionHanlder);
}
}
코드 실행 효 과 는 다음 그림 과 같 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DevExpress GridControl 데이터 바인딩본인은 재주가 없군요. 두 시간 넘게 고생해서야 데이터를 연결했습니다.이제 더 많은 친구들을 돕기 위해 고생 과정을 기록해 두고, 자신도 복습해 보자. 코드로 바로 올라갔네... WPF 하 xaml 파일 이상 주의:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.