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 | } |