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);
}