wpf dataGrid绑定selecteditem不起作用

时间:2013-01-02 10:16:20

标签: wpf mvvm binding datagrid selecteditem

我尝试将数据网格的selectedItem与MVVM中的属性绑定。 问题是它不会触发财产的“设置”。

在xaml部分我有:

 <WPFCtrlDg:ExtDataGrid Name="_edgMessage" Grid.Row="1" 
      ItemsSource="{Binding Path=LNE_MESSAGE, Mode=OneWay}"
      SelectedItem="{Binding Path=CurrentMessage, Mode=TwoWay}">
代码部分中的

 private LNE_MESSAGE _currentMessage;
    public LNE_MESSAGE CurrentMessage
    {
        get
        {
            if (_currentMessage == null)
            {
                ICollectionView collectionView = CollectionViewSource.GetDefaultView(LNE_MESSAGE);
                if (collectionView != null)
                    return collectionView.CurrentItem as LNE_MESSAGE;
                return null;
            }
            return _currentMessage;
        }
        set
        {
            ICollectionView collectionView = CollectionViewSource.GetDefaultView(LNE_MESSAGE);
            if (collectionView != null)
                collectionView.MoveCurrentTo(value);

            _currentMessage = value;
            OnPropertyChanged(() => CurrentMessage);
        }
    }

extdatagrid是一个自定义控件,所选的item属性以这种方式完成:

        public object SelectedItem
    {
        get { return GetValue(SelectedItemProperty); }
        set { SetValue(SelectedItemProperty, value); }
    }

    public static readonly DependencyProperty SelectedItemProperty =
        DependencyProperty.Register("SelectedItem", typeof(object), typeof(ExtDataGrid),
                                new UIPropertyMetadata((s, e) => 
                                                                {
                                                                    ExtDataGrid extDg = s as ExtDataGrid;
                                                                    Debug.Assert(extDg != null);
                                                                    extDg.CurrentItem = e.NewValue;
                                                                }));

如何正确绑定selecteditem属性?

1 个答案:

答案 0 :(得分:0)

检查您的datacontext是否设置正确。 如果使用可视帮助器实际设置了datacontext,则调试并查看locals窗口。另请参阅输出窗口以了解任何绑定错误。

乍一看,你的依赖属性看起来是正确的。