6

Tôi đã tạo ra một hành vi đính kèm được sử dụng để thực hiện một đại biểu của loại Func<bool> khi hành vi được gọi. Dưới đây là định nghĩa thuộc tính phụ thuộc.DependencyProperty của loại đại biểu

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

Tôi có nó hoạt động như dự kiến ​​tuy nhiên trong XAML của tôi, tôi nhận được lỗi sau, ngăn người thiết kế tải.

tài sản 'SendToDetailBehavior' được không tìm thấy hoặc không phải là serializable cho gõ 'SortableListView'

Dưới đây bạn sẽ tìm ra 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"> 

Nếu tôi thay đổi loại cơ bản của Thuộc tính phụ thuộc thành bool ví dụ: lỗi sẽ biến mất.

Như tôi đã nói hành vi đính kèm đang hoạt động, chỉ có người thiết kế mới thổi. Tôi đã tìm kiếm tài liệu về điều này và đã trở nên trống rỗng. Tôi hy vọng một người nào đó ở đây có một số thông tin chi tiết.

Cảm ơn, BDN

Trả lời

0

là điều này xảy ra trong VS 2008, 2010, hoặc Expression Blend? Các nhà thiết kế VS2008 nổi tiếng là mong manh. Theo như sửa chữa nó, bạn đã thử sử dụng một loại đại biểu không chung chung? Một cái gì đó như vậy:

public delegate bool SendToDetail(); 

Sau đó máy ảo của bạn sẽ hiển thị thuộc tính của loại đại biểu đó thay vì Func<bool>.

+0

Tôi đã không mệt mỏi. Đó là một gợi ý công bằng tôi sẽ thử vào buổi sáng. Đó là VS2008 thật đáng buồn. –

4

Thay vì sử dụng ủy nhiệm, thay đổi loại thuộc tính phụ thuộc của bạn thành Lệnh (Tôi đã sử dụng DelegateCommand) sẽ bao gồm đại biểu bên trong nó. Tôi đã có cùng một vấn đề như của bạn, nhưng nó đã được giải quyết bằng phương pháp này.

Các vấn đề liên quan