在我的用户控件MainControl中我有名为Repository的依赖项属性。我想用XAML使用XAML绑定依赖项属性
<my:MainControl x:Name="mainControl" Repository="{Binding }" Visibility="Visible" />
和内部MainWindow.xaml.cs在主窗口这个仓库属性绑定我有
public MainWindow()
{
InitializeComponent();
_repository = new CarRepository();
DataContext = _repository;
}
里面MainControl构造我的想法来显示使用
public MainControl()
{
InitializeComponent();
lblCountCars.Content = string.Format("there is {0} cars.", Repository.CountAllCars());
}
一些文本
我在这里做错了吗Repository="{Binding }"
?当我在后面的代码中注册用户控件后,一切正常,但我想学习如何使用xaml来做到这一点。
更新 要说清楚。我有MainWindow
它使用两个用户控件。 MainControl
和TreassureControl
。 我想送仓库是ICarRepository
类型的任何这种控制的,所以我创建的DependencyProperty在MainControl
和TreassureControl
命名ICarRepository
两型Repository
。
我的目标是库实例发送到MainControl
Repository
属性(DP),并在标签内容属性lblCountCars.Content = Repository.CountAllCars();
打印此外,我想在用户控件这个库实例进一步工作,不仅显示简单的文本。
所以我建议尝试波纹管
MainWindow.xaml
<my:MainControl x:Name="mainControl" Repository="{Binding Repository}" />
MainWindow.xaml.cs
private ICarRepository _repository;
public MainWindow()
{
InitializeComponent();
_repository = new CarRepository();
DataContext = _repository;
}
MainControl.xaml
<UserControl x:Name="mainControl">
<Label Name="lblCountBooks" Content="{Binding ElementName=mainControl, Path=Repository.CountAllBooks()}"
<ItemsControl ItemsSource="{Binding ElementName=mainControl, Path=Repository}" />
MainControl.xaml。 cs
public static readonly DependencyProperty RepositoryProperty = DependencyProperty.Register(
"Repository",
typeof(ICarRepository),
typeof(MainControl),
new PropertyMetadata(null));
public ICarRepository Repository
{
get { return (ICarRepository)GetValue(RepositoryProperty); }
set { SetValue(RepositoryProperty, value); }
}
标签内容未更新为预期内容。
请发表您的相关XAML为您MainControl,也许代码为您的DP太 – blindmeis