在我的用戶控件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