2012-01-21 5 views
0

dataGrid1을 편집 가능하게하려고했습니다. List 클래스 인스턴스를 만든 다음 DataGrid.ItemSource에 할당 할 수 있다고 읽었습니다. 이 코드는 2 줄 밖에되지 않지만 아래 코드를 사용하여 코드를 수행하는 방법에 대해서는 여전히 숙취가 있습니다. 어떤 아이디어? 감사!WPF에서 DataGrid를 편집 가능하게 만들기

public class MyData 
{ 
    public string street { set; get; } 
    public string town { set; get; } 
} 

DataGridTextColumn col1 = new DataGridTextColumn(); 
col1.Binding = new Binding("name"); 
dataGrid1.Columns.Add(col1); 
dataGrid1.Items.Add((new MyData() { street = "5th ave", town = "neverland"})); 

도움 주셔서 감사합니다. 아직도 stackoverflow에 게시 익숙해 지려고 노력. 여기 내가 바꾼 것은 그것이 나를 위해 일했습니다.

List<MyData> MyListBox1 =new List<MyData>(); 
MyListBox1.Add(new MyData() { street = "5th ave", town = "neverland"})); 
List<MyData> MyListBox1 =new List<MyData>(); 

또한 System.Collections.Generic를 사용

를 추가했다;

답변

0

글쎄, ItemsSource을 지정하지 않으면 Items 컬렉션에 항목을 추가하는 것이 다소 다른 것입니다.

(그런 재산이없는 경우 또한, 당신은 왜 name에 바인딩?)

+0

흠 나는 프로젝트를 수정했습니다. 나는 아래 코드에서 내가했던 것을 보여줄 것이다. 감사. – mdietz

+0

@MichaelDietz : 위와 같지 말고 주석은 코드에 적합하지 않습니다. –

1

이 당신이 원하는 무엇인가? 당신의 XAML 코드에서 이 클래스에서

 <DataGrid AutoGenerateColumns="False" Name="dataGrid1"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Street" Binding="{Binding street}"/> 
      <DataGridTextColumn Header="Town" Binding="{Binding town}"/> 
      <!-- by defect is editable --> 

      <DataGridTextColumn Header="Town" Binding="{Binding town}" IsReadOnly="True"/> 
      <!-- Not editable --> 

      ... more properties 
     </DataGrid.Columns> 
     </DataGrid> 

만 데이터 그리드 당신은 당신의 데이터 그리드를 편집 할 수 있습니다와

 public MyClass 
     { 
      InitializeComponent(); 
      List<MyData> lstData = new List<MyData>(); 
      dataGrid1.ItemsSource = lstData; 
     } 

으로 (모든 열거) 목록을 결합, 모든 항목은 목록

에 추가됩니다
+0

감사. 코드에서 모든 것을 할 수 있는지 확인하기 위해 XAML에서 멀리 떨어져있었습니다. 먼저 List를 정의하기 위해 System.Collections.Generic을 사용하여 지시문을 할당해야만했습니다. 메인 클래스 구조에서 Public으로 내 FirstData 또는 myList를 정의해야했습니다. 마지막으로 새 항목을 새로 고치지 않아서 새 항목을 추가 한 후에 dataGrid1.Items.Refresh()를 실행해야했습니다. 다시 한 번 감사드립니다! – mdietz

0

ItemsSource를 완벽하게 작동하도록 ObservableCollection으로 만듭니다. ObservableCollection itmSrcLevels = new ObservableCollection (ItemsSrc1);

관련 문제