我有用户控件中,我有数据网格
public partial class UserControl1 : UserControl
{
public object SelectedItem
{
get { return GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
public static readonly DependencyProperty SelectedItemProperty = DataGrid.SelectedItemProperty.AddOwner(typeof(UserControl1));
}
<DataGrid ItemsSource="{Binding MySource}"
AutoGenerateColumns="True"
SelectedItem="{Binding Path=SelectedItem,RelativeSource={RelativeSource FindAncestor,
AncestorType=my:UserControl1,
AncestorLevel=1}}"/>
在我的MainWindow中
<WpfApplication3:UserControl1 x:Name="myControl"
Grid.Row="0" SelectedItem="{Binding CurrentItem}" />
并在我的MainWindow 视图模型中
public object CurrentItem
{
get { return currentItem; }
set
{ currentItem = value;
OnPropertyChanged("CurrentItem");
}
}
我无法获取currentItem。
您正在将UserControl的DataContext设置为其自身,因此,当为SelectedItem设置绑定时,实际上是在要求它在UserControl的DataContext上而不是主窗口视图模型上查找CurrentItem。
为主窗口命名并使用绑定:
{Binding DataContext.CurrentItem, ElementName=windowName}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句