markus / ConvertService / ServiceBase / Markus.Service.StationController / Controls / RowIndexColumn.cs @ 2decfbdf
이력 | 보기 | 이력해설 | 다운로드 (1.75 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.Text = string.Format("{0}", this.DataControl.Items.IndexOf(dataItem) + 1); |
23 |
|
24 |
return textBlock; |
25 |
} |
26 |
|
27 |
protected override void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs args) |
28 |
{ |
29 |
base.OnPropertyChanged(args); |
30 |
|
31 |
if (args.PropertyName == "DataControl") |
32 |
{ |
33 |
if (this.DataControl != null && this.DataControl.Items != null) |
34 |
{ |
35 |
this.DataControl.Items.CollectionChanged += (s, e) => |
36 |
{ |
37 |
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) |
38 |
{ |
39 |
this.Dispatcher.InvokeAsync(() => this.Refresh()); |
40 |
//이거 때믄에 row 개수 옮길때 ex)200개 -> 50개 할때 에러 하지만 이게 있어야 row컨버터 후 삭제 및 다시add 할때 index번호가 들어감 |
41 |
//후 조취: 그냥 에러부분을 messagebox가 아닌 오류 목록에 놨음 |
42 |
} |
43 |
}; |
44 |
} |
45 |
} |
46 |
} |
47 |
} |
48 |
} |