2014-10-23 6 views
1

작성한 컬렉션에서 표시되는 각 열이있는 DataGrid를 만들려고했습니다. 하지만 DataGridTextColumn에 표시 할 데이터가없는 것 같습니다. 따라서 아래 컬렉션 _sym에 데이터가 채워져 있다고 가정합니다.DataGridTextColumn에 데이터가 표시되지 않습니다.

public partial class MainWindow : Window 
     { 
      ObservableCollection<decimal> _sym = new ObservableCollection<decimal>();    
      public ObservableCollection<decimal> Sym { get { return _sym; } } 

      public MainWindow() 
      { 
       InitializeComponent(); 
       this.DataContext = this; 
} 

XAML

<Grid >  
    <DataGrid> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Sym}"/> 
     </DataGrid.Columns> 
    </DataGrid> 
</Grid> 

가 내 XAML에 뭔가를 놓치고 있습니까 C#을? 다른 DataGrid [InsertTypeHere] 열을 사용해야합니까? 바인딩 원본, 대상 또는 경로를 올바르게 지정하지 않았습니까?

감사합니다.

답변

2

바인딩을 잘못된 위치에 설정했습니다. DataGridItemsSource으로 설정해야합니다. DataGridTextColumn 내의 컨텍스트는 항상 각 항목이어야합니다 (귀하의 경우에는 십진수입니다). 코드는 다음과 같아야합니다.

<DataGrid ItemsSource="{Binding Sym}" AutoGenerateColumns="false"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Something" Binding="{Binding}"/> 
    </DataGrid.Columns> 
</DataGrid> 
+0

감사합니다. DataGrid의 각 열을 다른 객체에 바인딩하려면 어떻게해야합니까? 그게 가능하니? – user1181337

+0

@ user1181337 현재 귀하의 데이터 항목은 단지 '십진수'입니다. 따라서 바인딩 할 속성이 없습니다 (단 하나의 옵션은 10 진수 자체를 DataGrid의 1 열에 바인딩하는 것입니다). 따라서 귀하의 데이터에 따라 다릅니다. –

관련 문제