markus / ConvertService / ServiceBase / Markus.Service.StationController / Controls / RowIndexColumn.cs @ e139272d
이력 | 보기 | 이력해설 | 다운로드 (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 |
} |