2010-08-02 65 views
1

我有2個自定義控件在wpf應用程序中彼此獨立。 但是,我有一些行爲需要在兩個類似的控件中進行復制。依賴屬性:如何設計

例如,當用戶在這兩個控件中的任何一個上拖放時,我需要或多或少相同的行爲來執行。

相同的行爲也包含需要在2個控件中共享的依賴項屬性。

這是可能的,如果是這樣,將如何設計呢?

因此,基本上,如何在控件之間共享依賴屬性,並且在控件彼此獨立時也共享一些行爲?

回答

0

那麼,你可以從你的自定義基本控件繼承這兩個控件,這兩個控件具有你需要的拖動邏輯。就像ListBoxComboBox派生自ItemsControl。這樣,他們共享相同的屬性和行爲。

如果這兩個控件不能從同一個控件繼承,那麼可以實現一個通用接口,就像ICommandSource,這個接口由很多控件實現。

0

使用繼承 - 創建一個包含你需要在這兩個控件一樣,然後在他們的XAML使用像這樣的邏輯一個共同的基礎控制:

<local:BaseClassName 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:local="clr-namespace:YourNamespaceName" 
mc:Ignorable="d" 
x:Class="ChildControlClassName" 
x:Name="ChildControlName" 
d:DesignWidth="640" 
d:DesignHeight="480" 
> 
    ...control XAML 
</local:BaseClassName>