Reputation: 13395
I've got datagrid with fields idsticker
,volatility
,rate of return
. Also I have a struct container
with fields idsticker
,volatility
,rateofreturn
struct container
{
public container(string sticker, decimal volatility, decimal rateofreturn)
{
this.sticker = sticker;
this.volatility = volatility;
this.rateofreturn = rateofreturn;
}
string sticker;
decimal volatility;
decimal rateofreturn;
};
I create list with structs and add there values
container cnt = new container(x.Trim(), volatility, ror);
list.Add(cnt);
But how to write this values to datagrid from list?When I do like this
dataGridControl1.ItemsSource = list;
it creates exactly the same number of lines as the count of the list but they all are empty.
datagrid definition in xaml
<xcdg:DataGridControl Height="392" Margin="0,190,534,0" Name="dataGridControl1" VerticalAlignment="Top" AutoCreateColumns="False" ItemsSource="{Binding}" AllowDetailToggle="False">
<xcdg:DataGridControl.Columns>
<xcdg:Column Title="Sticker" ReadOnly="True" FieldName="Sticker"/>
<xcdg:Column Title="Rate of return" ReadOnly="True" FieldName="Rate of return"/>
<xcdg:Column Title="Volatility" FieldName="Volatility" ReadOnly="True"/>
</xcdg:DataGridControl.Columns>
<xcdg:DataGridControl.View>
<xcdg:TableflowView>
<xcdg:TableflowView.Theme>
<xcdg:LunaHomesteadTheme />
</xcdg:TableflowView.Theme>
</xcdg:TableflowView>
</xcdg:DataGridControl.View>
</xcdg:DataGridControl>
Upvotes: 1
Views: 733
Reputation: 19296
You must add public properties.
XAML file:
<Window x:Class="DataGrid.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="dgData" AutoGenerateColumns="True" />
</Grid>
</Window>
Code-behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace DataGrid
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<container> _source = new List<container>();
for (int i = 0; i < 10; i++)
{
_source.Add(new container("test", 1 * 10, 1 * 10000));
}
dgData.ItemsSource = _source;
}
}
public struct container
{
public container(string sticker, decimal volatility, decimal rateofreturn)
{
this.sticker = sticker;
this.volatility = volatility;
this.rateofreturn = rateofreturn;
}
string sticker;
decimal volatility;
decimal rateofreturn;
public string Sticker { get { return sticker; } set { sticker = value; } }
public decimal Volatility { get { return volatility; } set { volatility = value; } }
public decimal Rateofreturn { get { return rateofreturn; } set { rateofreturn = value; } }
};
}
Upvotes: 1