프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / ConvertService / ServiceBase / Markus.Service.StationController / Controls / RowIndexColumn.cs @ e6281033

이력 | 보기 | 이력해설 | 다운로드 (1.89 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading.Tasks;
6
using System.Windows;
7
using System.Windows.Controls;
8

    
9
namespace Markus.Service.StationController.Controls
10
{
11
    /// <summary>
12
    /// 그리드 row 숫자 출력
13
    /// </summary>
14

    
15
    public class RowIndexColumn : Telerik.Windows.Controls.GridViewColumn
16
    {
17
        public override FrameworkElement CreateCellElement(Telerik.Windows.Controls.GridView.GridViewCell cell, object dataItem)
18
        {
19
            TextBlock textBlock = cell.Content as TextBlock;
20

    
21
            if (textBlock == null)
22
            {
23
                textBlock = new TextBlock();
24
            }
25

    
26
            textBlock.Dispatcher.Invoke(() => {
27
                textBlock.Text = string.Format("{0}", this.DataControl.Items.IndexOf(dataItem) + 1);
28
            });
29

    
30
            return textBlock;
31
        }
32

    
33
        protected override void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs args)
34
        {
35
            base.OnPropertyChanged(args);
36

    
37
            if (args.PropertyName == "DataControl")
38
            {
39
                if (this.DataControl != null && this.DataControl.Items != null)
40
                {
41
                    this.DataControl.Items.CollectionChanged += (s, e) =>
42
                    {
43
                        if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
44
                        {
45
                            this.Dispatcher.InvokeAsync(() => this.Refresh());
46
                            //이거 때믄에 row 개수 옮길때  ex)200개 -> 50개 할때 에러 하지만 이게 있어야 row컨버터 후 삭제 및 다시add 할때 index번호가 들어감
47
                            //후 조취: 그냥 에러부분을 messagebox가 아닌 오류 목록에 놨음
48
                        }
49
                    };
50
                }
51
            }
52
        }
53
    }
54
}
클립보드 이미지 추가 (최대 크기: 500 MB)