首先,關於數據綁定幾個問題:棱鏡V4,MEF WPF數據綁定
- 是對設置到代碼隱藏控件的默認的DataContext?例如,如果我在test.xaml.cs中有一個變量
orderNumber
,我可以在xaml{Binding orderNumber}
中像這樣引用它嗎? - 是否正確,我只能綁定到對象的屬性?
我在單獨的模塊/程序集中有一個Prism服務,我通過MEF將其導入到Shell應用程序中。我試圖對它進行數據綁定,但似乎沒有工作。
我的解決方法如下。 在我Shell.xaml.cs:
[Import(AllowRecomposition = false)]
private IRibbonService _menuService;
public IRibbonService MenuService
{
get
{
return _menuService;
}
}
public void OnImportsSatisfied()
{
Debug.WriteLine("Imports satisfied", "Prism");
this._moduleManager.LoadModuleCompleted += new EventHandler<LoadModuleCompletedEventArgs>(moduleManager_LoadModuleCompleted);
//TODO figure out how to properly bind to the ribbon
Ribbon.DataContext = _menuService;
RibbonAppMenu.DataContext = _menuService.ApplicationMenuData;
}
有沒有辦法來設置前一個對象XAML DataContext的設定 - 特別是在關於MEF /棱鏡的情況?在我的功能區對象上,我嘗試了DataContext="{Binding MenuService}"
,但沒有奏效。
@Chris:在功能區或RibbonWindow中定義了MenuService嗎? –
IRibbonService接口和RibbonService類在一個名爲Infrastructure的單獨項目中聲明/實例化,並使用MEF導出...然後使用上面問題中使用的代碼導入RibbonWindow。 –
我試着做這樣的事情http://serialseb.blogspot.com/2007/10/wpf-tips-8-use-your-code-behind-for.html其中根xaml元素有一個自我DataContext,但沒有數據綁定,也許是因爲我需要一個DependencyProperty(不確定,我需要閱讀它的用途) –