프로젝트

일반

사용자정보

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

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

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

1 a34f58f6 taeseongkim
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
    public class RowIndexColumn : Telerik.Windows.Controls.GridViewColumn
12
    {
13
        public override FrameworkElement CreateCellElement(Telerik.Windows.Controls.GridView.GridViewCell cell, object dataItem)
14
        {
15
            TextBlock textBlock = cell.Content as TextBlock;
16
17
            if (textBlock == null)
18
            {
19
                textBlock = new TextBlock();
20
            }
21
22 dfc86b71 taeseongkim
            textBlock.Dispatcher.Invoke(() => {
23
                textBlock.Text = string.Format("{0}", this.DataControl.Items.IndexOf(dataItem) + 1);
24
            });
25 a34f58f6 taeseongkim
26
            return textBlock;
27
        }
28
29
        protected override void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs args)
30
        {
31
            base.OnPropertyChanged(args);
32
33
            if (args.PropertyName == "DataControl")
34
            {
35
                if (this.DataControl != null && this.DataControl.Items != null)
36
                {
37
                    this.DataControl.Items.CollectionChanged += (s, e) =>
38
                    {
39
                        if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
40
                        {
41 2decfbdf alzkakdixm
                            this.Dispatcher.InvokeAsync(() => this.Refresh());
42
                            //이거 때믄에 row 개수 옮길때  ex)200개 -> 50개 할때 에러 하지만 이게 있어야 row컨버터 후 삭제 및 다시add 할때 index번호가 들어감
43
                            //후 조취: 그냥 에러부분을 messagebox가 아닌 오류 목록에 놨음
44 a34f58f6 taeseongkim
                        }
45
                    };
46
                }
47
            }
48
        }
49
    }
50
}
클립보드 이미지 추가 (최대 크기: 500 MB)