Wpf don';不要在ChangePropertycallback中更改属性

Wpf don';不要在ChangePropertycallback中更改属性,wpf,listview,dependency-properties,icollectionview,itemsource,Wpf,Listview,Dependency Properties,Icollectionview,Itemsource,我有一个ListView并将ItemSource绑定到ICollectionView属性,并将所选项目绑定到dp属性 public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register("Selected", typeof(Myclass),

我有一个
ListView
并将
ItemSource
绑定到
ICollectionView
属性,并将所选项目绑定到dp属性

 public static readonly DependencyProperty SelectedProperty =
      DependencyProperty.Register("Selected",
                                  typeof(Myclass),
                                  typeof(MyControl), new PropertyMetadata(SelectedContactChange));


    static void SelectedContactChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        MyControlcontrol = d as MyControl;
        control.MYView = CollectionViewSource.GetDefaultView(((Myclass)e.NewValue).Numbers);
    }
我还有另一个列表视图,并将itemsource绑定到MYView属性

 ICollectionView _myView;
    public ICollectionView MYView
    {
        get { return _myView; }
        set
        {
            _myView= value;
        }
    }
更改SelectedProperty时,我为MYView设置了值,但不在与MYView绑定的listview中显示新值


如何在更改SelectedProperty时更改MYView属性???

不是100%确定,但我猜ListView的ItemsSource绑定到MyControl类的
MYView
属性,可能如下所示:

<MyControl x:Name="myControl" ... />
<ListView ItemsSource="{Binding MYView, ElementName=myControl}" />

或者,您可以将
MYView
定义为另一个依赖项属性。

当您直接为绑定源赋值时,绑定会出现故障“我想设置MYView,但不更改MYView”,这意味着什么?请更精确一些。您应该像将selectedItem绑定到viewmodel中的某个属性一样,然后在VM中执行您在这里执行的操作,并为MYView赋值there@Clemens:我为MYView设置了值,但不在与MYView绑定的listview中显示新值@伦理学:这是什么意思?请更精确一点。谢谢,我有一个自定义控件,并使用RelativeSource={RelativeSource TemplatedParent}作为listview。。。我使用PropertyChanged,但不显示新项。问题是相同的,必须通知绑定。想一想,非常感谢。。。我使用MYView的依赖项属性。
 public static readonly DependencyProperty SelectedProperty =
      DependencyProperty.Register("Selected",
                                  typeof(Myclass),
                                  typeof(MyControl), new PropertyMetadata(SelectedContactChange));


    static void SelectedContactChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        MyControlcontrol = d as MyControl;
        control.MYView = CollectionViewSource.GetDefaultView(((Myclass)e.NewValue).Numbers);
    }