2014-10-23 2 views
1

Я пытаюсь создать datagrid с каждым столбцом, отображаемым из созданной мной коллекции. Но я просто не могу представить какие-либо данные в DataGridTextColumn. Поэтому предположим, что в приведенной ниже коллекции _sym был заполнен данными.DataGridTextColumn не отображает никаких данных

C#

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? Нужно ли использовать другой столбец DataGrid [InsertTypeHere]? Не правильно ли я указал источник привязки, цель или путь?

Thanks

ответ

2

Вы устанавливаете привязку в неправильном месте. Он должен быть установлен для ItemsSourceDataGrid. Контекст внутри DataGridTextColumn должен всегда быть каждым элементом (в вашем случае это всего лишь десятичное число). Код должен быть таким:

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

Спасибо. Итак, что, если я хотел связать каждый столбец в DataGrid с другим объектом? Это возможно? – user1181337

+0

@ user1181337 В настоящее время ваш элемент данных является просто «десятичным». Таким образом, нет никаких свойств для привязки (у вас есть только один параметр - привязка самого десятичного числа к 1 столбцу datagrid). Так что это зависит от ваших данных. –