2009-02-19 40 views
0

一個更好的解釋,我希望:在WPF用戶控件暴露多個命令

  • 我有上有3個按鈕的工具欄,所有三個綁定到一個命令(包括CommandParameter)
  • 這個工具欄在多個屏幕使用
  • 工具欄的XAML正是在所有這些屏幕

我想刪除工具欄實例,並提供3個命令的用戶控制取代它一樣的,所以我可以在每個屏幕上保留綁定。該計劃是稍後更改工具欄的功能,但外部編程接口(即3個命令)是相同的。

所以:

  • 我創建用戶控制,和在3組依賴屬性的每個命令(的OneCommand,OneCommandParameter,OneCommandTarget),所以我可以使用這些的結合。
  • 我移動了用戶控件xaml中的工具欄xaml。
  • 我修改了工具欄按鈕上的綁定以綁定到每個屏幕上的內向用戶控件屬性
  • (或者真的,現在只有第一個)我用用戶控件替換原始工具欄,將新屬性綁定到正確的命令。

控制顯示,但按鈕不起作用。 就是這樣。

-

原始的解釋 - 不是那麼清楚:

我有一個WPF用戶控件封裝數字按鍵。以前,該控件是一個帶有多個按鈕的工具欄,但由於我需要在多個屏幕上使用相同的功能,因此我將工具欄重構爲自定義控件。

不過,我想保持原來的按鈕的命令綁定。

  • 我在usercontrol上創建了3組依賴屬性(XCommand,XCommandParameter和XCommandTarget)。
  • 在用戶控件xaml中,我將「真實」按鈕綁定到這些屬性(每個按鈕對應每組屬性)。
  • 我在哪裏使用usercontrol,我將新的屬性綁定到真正的命令綁定。

實質上,我想保留用戶控件公開的每個「命令」的ICommandSource功能。但是,這種雙重數據綁定方案似乎不起作用,或者我做錯了什麼。 :)

有沒有更好的方式來做到這一點?我需要的只是將控件外部的命令「橋接」到內部按鈕,以便執行和CanExecute功能保持不變。

+0

你能解釋一下你想做多一點嗎......我不太明白。原始按鈕是否分配了命令? CommandBinding在哪裏實現?目前什麼都不起作用? – 2009-02-19 09:45:24

+0

現在更好的解釋。我希望。 – Inferis 2009-02-19 10:17:58

回答

-4

我解決了這個問題。內部控件綁定中的RelativeSource中存在一個錯誤。它現在可以正常工作。