2012-06-29 39 views
13

Hiện tại tôi có một ComboBox được định nghĩa là:Làm thế nào để có được ToolTip ràng buộc để làm việc với một ComboBox?

<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}" 
      DisplayMemberPath="Description" 
      ToolTip="{Binding Path=ToolTip}" // never displays the value 
      SelectedValuePath="Value" SelectedValue="{Binding Path=Value}" /> 

Mọi thứ đều hoạt động ngoại trừ ToolTip. Tài sản mà nó phải liên kết với; ToolTipkhông chứa một giá trị. Tôi chắc chắn về điều này bởi vì khi tôi làm như sau, tôi nhìn thấy một kết quả xác nhận ToolTip có chứa một giá trị:

<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}" 
      DisplayMemberPath="ToolTip" // I replaced 'Description' with 'ToolTip' 
      ToolTip="{Binding Path=ToolTip}" 
      SelectedValuePath="Value" SelectedValue="{Binding Path=Value}"/> 

Sau khi thay thế Description với ToolTip tôi có thể thấy rằng giá trị của ToolTip đang xuất hiện trên màn hình. Tuy nhiên

ToolTip="{Binding Path=ToolTip}" 

vẫn không hoạt động. Nếu tôi cố gắng hiển thị Chú giải công cụ như sau:

ToolTip="ToolTip" 

nó chỉ hiển thị từ 'ToolTip'.

Tôi làm cách nào để có được ToolTip để hiển thị một giá trị?

Trả lời

19

ToolTip="{Binding Path=ToolTip}" liên kết với ToolTip tài sản của hộp hiện nay kết hợp DataContext (đối tượng có chứa EnumDataItems tài sản). Giả sử bạn muốn thiết lập ToolTip của ComboBox hiện để chọn giá trị tài sản ToolTip mục, điều này nên sửa chữa các vấn đề:

ToolTip="{Binding Path=SelectedItem.ToolTip, RelativeSource={RelativeSource Self}}" 
27

Nếu một ToolTip cho mỗi ComboBoxItem là những gì bạn muốn, bạn có thể làm điều này:

<ComboBox.ItemContainerStyle> 
    <Style> 
     <Setter Property="Control.ToolTip" Value="{Binding ToolTip}" /> 
    </Style> 
</ComboBox.ItemContainerStyle> 
+0

Nhờ một triệu cho điều này - đây là bước tiếp theo tôi đã nhận được đến. Khi câu trả lời khác trả lời câu hỏi được hỏi tôi chấp nhận câu hỏi đó là câu hỏi đúng, nhưng tôi thấy điều này cực kỳ hữu ích nên cảm ơn bạn. – binncheol

+0

Đây là những gì tôi đang tìm kiếm. Rất đơn giản và hiệu quả. Tôi thấy mẫu kinh dị này và tôi biết rằng nó phải là một cách đơn giản hơn. http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/52ee62b4-41b6-44c1-8d2d-0243162266ef/ – alexandrudicu

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