首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Syncfusion GridTreeControl和绑定的问题

Syncfusion GridTreeControl和绑定的问题
EN

Stack Overflow用户
提问于 2015-01-12 02:19:58
回答 1查看 455关注 0票数 1

我是WPF的新手,正在使用Syncfusion框架。我想使用DataTreeControl来显示数据的层次结构,这些数据将以重复出现的时间间隔加载和更新。但由于某些原因,它不显示数据。

这是从我的MainWindow.xaml上剪下来的

代码语言:javascript
复制
<syncfusion:TabItemExt Name="_tabItemTipps" Header="Tipps">                  
                    <syncfusion:GridTreeControl Name="_treeGrid"
                                        BorderBrush="LightGray"
                                        BorderThickness="0,0.5,0,0"
                                        EnableHotRowMarker="False"
                                        EnableNodeSelection="True"                                                   
                                        ExpandStateAtStartUp="AllNodesExpanded"
                                        ReadOnly="True"
                                        SupportNodeImages="True"
                                        VisualStyle="Metro"
                                        ItemsSource="SoccerMarkets"
                                       >

                        <!--  Code for GridTreeControl Columns  -->
                        <syncfusion:GridTreeControl.Columns>
                            <syncfusion:GridTreeColumn  HeaderText="Nation" MappingName="{Binding RoughCat}"></syncfusion:GridTreeColumn>

                        </syncfusion:GridTreeControl.Columns>
                    </syncfusion:GridTreeControl>

下面是设置DataContext的MainWindow.xaml.cs中的代码片段:

代码语言:javascript
复制
public MainWindow()
    {
        DataContext = this;
        InitializeComponent();
        SkinStorage.SetVisualStyle(_tabControl, "Metro");
        _settingsVM = new AppSettingsVM();


        _txtBetdaqUser.DataContext = _settingsVM;
        _chkSystemActive.DataContext = _settingsVM;
        _chkInSimulationMode.DataContext = _settingsVM;

        _mechanic = new TippMechanic(_settingsVM);
        _soccerMarketsVM = new SoccerMarketVM();

        Task[] tasks = new Task[1];
        tasks[0] = Task.Factory.StartNew(async () => await _mechanic.Init());//   _mechanic.Init();
        Task.WaitAll(tasks);
        _soccerMarketsVM.SoccerMarkets = _mechanic.SoccerMarketManager.SoccerMarkets;
        _treeGrid.DataContext = _soccerMarketsVM.SoccerMarkets;
    }

我的ViewModel (_soccerMarketsVM)是这样定义的:

代码语言:javascript
复制
class SoccerMarketVM : ObservableObject
{
    private ObservableCollection<SoccerMarket> _soccerMarkets;

    public ObservableCollection<SoccerMarket> SoccerMarkets
    {
        get { return _soccerMarkets; }
        set
        {
            if(_soccerMarkets != null)
                _soccerMarkets.CollectionChanged -= _soccerMarkets_CollectionChanged;
            _soccerMarkets = value;

            _soccerMarkets.CollectionChanged += _soccerMarkets_CollectionChanged;

        }
    }

    public SoccerMarketVM()
    {
        //_soccerMarkets = new ObservableCollection<SoccerMarket>();
        //_soccerMarkets.CollectionChanged += _soccerMarkets_CollectionChanged;
    }

    void _soccerMarkets_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        Console.WriteLine(e.Action.ToString());
    }
}

CollectionChanged的事件被触发,我得到了Console.Writeline输出。有没有人看到这里出了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2015-06-23 20:33:27

在GridTreeControl中,您可以使用不同的方式填充数据。在您的代码片段中,不指定绑定关键字而定义绑定,而使用ItemsSource关键字定义MappingName。但对于itemssource,需要指定绑定,对于映射名称,可以直接分配属性名称,不需要指定绑定。请参考下面的GridTreeControl中数据填充的UG链接,

链接:

http://help.syncfusion.com/ug/wpf/index.html#!Documents/addingthegridtreecontroltoawpfapplication.htm

Elavarasan M- Syncfusion软件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27890479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档