【发布时间】:2013-01-16 12:47:55
【问题描述】:
我有这样的 wfp 表格:
public partial class MediaPlayerControlMain : Window
{
MediaPlayerMain MediaPlayerMain;
public MediaPlayerControlMain()
{
MediaPlayerMain = new MediaPlayerMain();
InitializeComponent();
}
}
我有使用 MediaPlayerMain 对象的用户控件 (PlayList)。 该用户控件具有:
public partial class PlayList : UserControl
{
public MediaPlayerMain MediaPlayer
{
get { return (MediaPlayerMain)GetValue(MediaPlayerProperty); }
set { SetValue(MediaPlayerProperty, value); }
}
public static readonly DependencyProperty MediaPlayerProperty =
DependencyProperty.Register(
"MediaPlayer", typeof(MediaPlayerMain), typeof(PlayList),
new FrameworkPropertyMetadata()
);
}
有没有办法只使用 xaml 设置 MediaPlayer 属性。我尝试使用“{Binding ElementName=MediaPlayerMain}”,但似乎 MediaPlayerMain 尚未初始化。虽然我在 InitializeComponent() 函数之前对其进行了初始化。我究竟做错了什么?。将该对象传递给我的用户控件的最佳选择是什么?
【问题讨论】:
-
MediaPlayerMain 类有两个对象吗?一个在主窗口中,一个在用户控件中?在代码的第一部分,您只在主窗口中创建新对象
-
不,MediaPlayerMain 只有一个对象,用户控件应该使用它。这有点像委托。
-
能否请您显示 MediaPlayerMain 类。
-
我还没写完呢。在这里发布它是相当大的。可能我会将它发布在 sourceforge.net 或 github 或类似的地方。
标签: c# wpf data-binding user-controls