6

我創建了一個附加行爲,用於在調用行爲時執行Func<bool>類型的Delegate。以下是依賴性屬性定義。類型委託的DependencyProperty

public static readonly DependencyProperty SendToDetailBehaviorProperty = DependencyProperty.RegisterAttached("SendToDetailBehavior", typeof(Func<bool>), typeof(ListDetailAspectSendToDetailBehavior), new UIPropertyMetadata(null, SendToDetail)); 

我已經在我的XAML但預計出現以下錯誤,阻止裝載設計師只是工作。

住宅 'SendToDetailBehavior' 被 找不到或不可序列爲 型 'SortableListView'

下面你會發現XAML。

<Controls:SortableListView Grid.Row="0" 
                 Grid.Column="0" 
                 Name="lvwLocations" 
                 MinHeight="150" 
                 MinWidth="{Binding Path=BusinessObject.Locations, ValidatesOnDataErrors=true, Converter={StaticResource AlwaysReturn1Converter}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
                 Style="{DynamicResource SortableListViewStyle}" 
                 ScrollViewer.VerticalScrollBarVisibility="Auto" 
                 ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                 IsSynchronizedWithCurrentItem="True" 
                 **behaviors:ListDetailAspectSendToDetailBehavior.SendToDetailBehavior="{Binding Path=LocationListDetail.SendFocusToDetail}"** 
                 ItemsSource="{Binding Path=LocationListDetail.MasterList}" 
                 SelectedItem="{Binding Path=LocationListDetail.DetailItem, Mode=TwoWay}" 
                 MouseDoubleClick="lvwLocations_MouseDoubleClick"> 

如果我更改爲bool例如基本類型的扶養財產,錯誤消失。

正如我所說的附加行爲正在工作,只有設計師爆炸。我已經找到了這方面的文件,並已空出來。我希望這裏有人有一些見解。

感謝, BDN

回答

0

這是發生在VS 2008,2010,或Expression Blend的? VS2008的設計者非常脆弱。至於修復它,你有沒有嘗試過使用非泛型委託類型?就像這樣:

public delegate bool SendToDetail(); 

然後你的虛擬機會暴露該代理類型的屬性而不是Func<bool>

+0

我還沒有厭倦。這是一個公平的建議,我會在早上試一試。可悲的是VS2008。 – 2010-09-09 01:40:45

4

代替使用委託,將您的依賴項屬性類型更改爲Command(我使用DelegateCommand),該委託將包裝其中的委託。我遇到了和你一樣的問題,但這是通過這種方法解決的。