2009-06-11 38 views
7

Theo sau earlier post Tôi hiện đang cố gắng kết hợp khả năng hiển thị của DataGridColumns với thuộc tính thông báo VM. MSDN gợi ý tôi có thể làm điều này một cách dễ dàng.Silverlight DataGridTextColumn Hiển thị ràng buộc

Tôi đã có một chuyển đổi giá trị và tài sản thông báo VM mà tôi biết công trình (Tôi đã thử nghiệm này trên một yếu tố khác trên trang của mình:

<CheckBox x:Name="chkAllTeams" Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}"/> 

tầm nhìn kiểm soát hộp kiểm này phản ứng như tôi mong chờ Khi. tôi đặt cùng một ràng buộc trên DataTextColumn tôi nhận được một lỗi AG_E_BAD_PARSER trên Tầm nhìn = dòng XAML:

<data:DataGridTextColumn 
Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}" 
/> 

Bất kỳ ý tưởng bất cứ ai Cảm ơn, Đánh dấu

Trả lời

9

Hiển thị trên DataGridTextColumn là một con thú khác trên hộp kiểm. Về cơ bản, nó không phải là một thuộc tính phụ thuộc và không thể bị ràng buộc dữ liệu. Nếu bạn cần chức năng này, bạn có thể phân lớp DataGridTextColumn và thêm thuộc tính phụ thuộc của riêng bạn để có được hành vi.

  • Rectangle được sở hữu Tầm nhìn từ UIElement và là một tài sản phụ thuộc
  • DataGridTextColumn được Tầm nhìn từ DataGridColumn và không phải là một tài sản phụ thuộc.
+0

Ah đây là những gì tôi mong đợi :-(Có phải đó là một nhiệm vụ dễ dàng để phân lớp các DataGridTextColumn Bạn? biết về bất kỳ ví dụ trực tuyến cho rằng Mark –

+1

Tôi không biết của bất kỳ ví dụ cụ thể cho DataGridTextColumn.Các phương pháp tiếp cận chung sẽ là phân lớp, thêm một tài sản phụ thuộc mới cho khả năng hiển thị và sau đó sử dụng phân lớp mới trong Datagrid.Columns. có giải thích tốt về các thuộc tính phụ thuộc: http://silverlight.net/blogs/jesseliberty/archive/2008/09/30/dependency-property-system-deeper-dive-part-1.aspx –

+0

Liên kết đó đã chết ngay bây giờ, đây là liên kết mới: http://jesseliberty.com/2008/09/30/dependency-property-system-%E2%80%93-deeper-dive-part-1/ – Oskar

-1

Bạn có đặt BoolToVisibilityConverter làm tài nguyên không?

+0

Yep. Ví dụ trước trên hộp kiểm chứng minh điều đó. –

+0

thực tế ví dụ của bạn chỉ hiển thị một nửa mã ... dù sao, như những người khác đã nói rằng có thể không phải là vấn đề của bạn. vidalsasoon

-2

Bạn sẽ cần phải sử dụng một datatemplate:

< DataTemplate x: Key = "cBDT" >
< (UIElement ĐÂY) x: Name = "chkAllTeams" Tầm nhìn = "{Binding Chuyển đổi = {StaticResource BoolToVisibilityConverter}, Path = AllTeams} "/> </DataTemplate >

Như đã đề cập trước đây, chỉ UIElement có "Tầm nhìn" bất động sản phụ thuộc.

Để xem một ví dụ về điều này trong bối cảnh:

http://blogs.msdn.com/scmorris/archive/2008/04/14/defining-silverlight-datagrid-columns-at-runtime.aspx

+2

Không phải là câu trả lời hay - điều này ẩn phần tử * trong cột, chứ không phải chính * cột *. – slugster

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