markus / ConvertService / ServiceBase / Markus.Service.StationController / Controls / RowIndexColumn.cs @ dfc86b71
이력 | 보기 | 이력해설 | 다운로드 (1.82 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 |
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 |
textBlock.Dispatcher.Invoke(() => { |
23 |
textBlock.Text = string.Format("{0}", this.DataControl.Items.IndexOf(dataItem) + 1); |
24 |
}); |
25 |
|
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 |
this.Dispatcher.InvokeAsync(() => this.Refresh()); |
42 |
//이거 때믄에 row 개수 옮길때 ex)200개 -> 50개 할때 에러 하지만 이게 있어야 row컨버터 후 삭제 및 다시add 할때 index번호가 들어감 |
43 |
//후 조취: 그냥 에러부분을 messagebox가 아닌 오류 목록에 놨음 |
44 |
} |
45 |
}; |
46 |
} |
47 |
} |
48 |
} |
49 |
} |
50 |
} |