好吧,严重的家伙我厌倦了WPF的错误和硬处理,看我有很多按钮被指定为代表房间,我想绑定到一个工具提示,以获得占用者的名称和来自数据库的信息。 我无法找到如何做到这一点。 感谢Neptune2 [刚刚从火星来]
回答
打造
RoomViewModel
类暴露Description
,IsAvailable
,OtherInformation
等性能,并实现INotifyPropertyChanged
。您如何填充这些属性取决于您的应用程序。建立一个
RoomsViewModel
类,公开名为Rooms
的ObservableCollection<RoomViewModel>
。创建
DataTemplate
s为RoomViewModel
和RoomsViewModel
类(见下文)。创建一个
RoomsViewModel
类的实例并填充它的Rooms
集合。创建一个
ContentPresenter
并将其Content
属性设置为您的RoomsViewModel
类的实例。
典型数据模板可能是这样的:
<DataTemplate x:Type="{local:RoomsViewModel}">
<ItemsControl ItemsSource="{Binding Rooms}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
<DataTemplate x:Type="{local:RoomViewModel}">
<Button
Margin="10"
IsEnabled="{Binding IsAvailable}"
ToolTip="{Binding OtherInformation}"
Content="{Binding Description}"/>
</DataTemplate>
未来的改进:
尝试使用的
UniformGrid
而不是WrapPanel
。阅读乔希史密斯的文章Using RoutedCommands with a ViewModel in WPF并使用该处描述的技术在
RoomViewModel
上创建ReserveRoomCommand
属性。将RoomViewModel
数据模板中的CommandBinding
设置为{Binding ReserveRoomCommand}
。请注意,一旦你这样做,你将删除绑定到IsEnabled
,因为命令绑定会自动启用和禁用按钮。如果您需要重新使用此用户界面,请将数据模板和内容展示器移至
UserControl
。
+1为愚蠢的问题和认真的答案惊人的对比。 – egrunin 2010-08-10 18:34:36
罗伯特,这个问题很容易被删除以及关闭。如果是这样,请再次提问并回答问题。保存足够有用。 – 2010-08-10 20:00:40
- 1. 刚刚从Firefox
- 2. 提取刚刚从 “A HREF”
- 3. 刚刚从蜂巢表
- 4. 刚刚学习javascript
- 5. 刚刚学习PHP
- 6. 从刚刚创建的类的绑定
- 7. 如何提取刚刚从psutil.phymem_usage()蟒蛇
- 8. 继承刚刚从母版页
- 9. 刚刚从熊猫获得价值
- 10. 提取刚刚从字符串
- 11. 复制刚刚从SQLAlchemy的对象
- 12. Clojure:刚刚返回值
- 13. 刚刚扩大的zsh
- 14. R.java文件刚刚失踪
- 15. 阅读我刚刚在android
- 16. Android线程刚刚停止
- 17. 猫鼬让刚刚存
- 18. PHP程序刚刚停止
- 19. C4模板刚刚消失
- 20. ErrorDocument 404刚刚显示“404”
- 21. JavaScript - 刚刚学习FOR
- 22. Hadoop作业刚刚结束
- 23. 刚刚使用Sharepoint 2010 Foundation
- 24. 一个我刚刚点击
- 25. 刚刚闭幕插座
- 26. 刚刚尝试过混淆
- 27. Geom_ribbon()刚刚转图空白
- 28. 变形金刚从哪里来?
- 29. 如何在刚刚产生用来取消固定节点
- 30. iFrame - 如何加载用户刚刚来的页面?
您可能需要先更改标题。 – 2010-08-10 16:14:18
你想添加工具提示到WPF中的按钮吗?你在问什么? – Siege898 2010-08-10 16:30:50
Nanu。纳努。 MEEP MEEP。咩。 – 2010-08-10 16:31:50