繁体   English   中英

数据绑定数据网格

[英]Databinding a Datagrid

在将Observable集合数据绑定到我的datagrid失败( 在同一论坛中的另一个问题 )之后,我尝试缩小范围。 现在,我的项目只有一个数据网格,一个ObservableColection和一个类。 但是我的数据绑定仍然失败..请帮助..

using System.Collections.ObjectModel;
using System.Windows;

namespace TestDatagrid
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }

    public class MainViewModel
    {
        public ObservableCollection<OptionStrike> oOs = new ObservableCollection<OptionStrike>(new OptionStrike[]
            {
                new OptionStrike("Put", 7500.00, 12345),
                new OptionStrike("Call", 7500.00, 123),
                new OptionStrike("Put", 8000.00, 23645),
                new OptionStrike("Call", 8000.00,99999)
            });
    }

    public class OptionStrike
    {
        public OptionStrike(string p1, double p2, int p3)
        {
            // TODO: Complete member initialization
            this.Type = p1;
            this.Strike = p2;
            this.Volume = p3;
        }

        public string Type { get; set; }
        public double Strike { get; set; }
        public double Volume { get; set; }
    }
}

这是我的XAML。

 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TestDatagrid" x:Class="TestDatagrid.MainWindow" Title="MainWindow" Height="350" Width="525"> <Window.DataContext> <local:MainViewModel/> </Window.DataContext> <Grid> <StackPanel> <DataGrid ItemsSource="{Binding oOs}" AutoGenerateColumns="True" /> </StackPanel> </Grid> </Window> 

您需要将ObservableCollection公开为属性 ,而不是Field

public class MainViewModel
{
    public ObservableCollection<OptionStrike> oOs { get; set; }

    public MainViewModel()
    {
        oOs = new ObservableCollection<OptionStrike>(new OptionStrike[]
        {
            new OptionStrike("Put", 7500.00, 12345),
            new OptionStrike("Call", 7500.00, 123),
            new OptionStrike("Put", 8000.00, 23645),
            new OptionStrike("Call", 8000.00,99999)
        });
    }
}

您无法绑定到字段,请参阅此处以获取有关该主题的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM