2010-01-21 137 views
0

我是c#的新手,我正在使用專用卡玩家。我已經在一個用戶控件上工作,典型的按鈕停止播放,暫停和記錄。問題是我不知道如何創建這樣的事件,從主體代碼(Window)中我可以管理和調用通訊功能,因爲從usercontrol文件中,我無法訪問任何項目(當然定義在窗口中)我需要讓事情發揮作用,因爲它們不可訪問。WPF用戶控件和外部事件

在此先感謝

最好的問候,

奧斯卡

回答

1

你的用戶控件需要公開相應的屬性,方法和事件,讓你的窗口可以與它進行交互。例如,您的UserControl可能會聲明一個暫停事件,以便窗口可以在用戶暫停控制時作出響應;或者它可能會聲明一個Play方法,以便Window可以開始控制播放。當你在Window的XAML文件中實例化你的UserControl時,給它起個名字,例如

<local:MyControl x:Name="myControl" /> 

然後,您可以參照從代碼隱藏它,如:

myControl.Paused += MyControl_Paused; 
myControl.Play(); 

創建所需的API,在代碼隱藏創建在用戶控件公共屬性,方法和事件類。你說你是「C#中的菜鳥」,所以我不知道你需要多少指導,但除非你需要進入WPF數據綁定或事件路由,否則你可以使用正常的C#/ .NET屬性,方法和事件這個。在C#中聲明屬性,方法和事件在MSDN和文獻中有廣泛的介紹。如果您特別需要使用WPF數據綁定或事件路由的幫助,請留下評論以概述您的具體困難,然後我會更新答案。

+0

謝謝您的迴應,但我認爲我的問題更大,因爲我的播放和暫停方法只能在窗口對象中實現,並且必需的方法和對象不能從我的用戶控件訪問...我該怎麼做? 此致敬禮 奧斯卡 – Oscar 2010-01-22 12:15:34

+0

哪裏可以查閱「必要的方法和對象」? *某物*必須包含它們:讓您的窗口與此交談。例如,讓你的用戶控件引發一個'PlayPressed'事件; Window可以接收並調用'specialisedCard.Play()'方法。 – itowlson 2010-01-22 18:46:34