首先,我要感谢您在本论坛中阅读的许多好帖子。不幸的是,我找不到任何有关我当前问题的帮助(无论是在这里还是其他任何地方)。
我正在尝试做的事情听起来很简单,但我不知道如何让它发挥作用...也许我仍然对wpf不熟悉或者我没有足够的东西:)
我正在为自动化制造中的零件设计前端:
我想要的是:
前两点很简单,效果很好:
我尝试将Textblock的Text绑定到所选Part的ID ...并失败。
可能我可以在后面的代码中使用一些全局变量 - 但听起来非常难看。
有人可以帮忙吗?
答案 0 :(得分:1)
我有一个解决方案......它不是很好但是有效。
最有可能有更好的解决方案,但它就足够了。
答案 1 :(得分:0)
也许尝试使用ElementName绑定?
<TextBlock Text="{Binding ElementName=Name_of_your_Listbox, Path=SelectedItem.ID" />
你可以发布一些TextBlock和Binding的代码吗?
答案 2 :(得分:0)
如果我使用ContentControl并将其内容绑定到SelectedItem
,则上下文非常重要:
<ContentControl Content="{Binding SelectedItem, ElementName=mylistbox}">
我可以像这样绑定到DataTemplate中所选项目的ID:
<ContentControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding ID}" />
</DataTemplate>
</ContentControl.ContentTemplate>
这是因为设置Content
的{{1}}也会自动设置DataContext,并且此绑定相对于ContentControl
,因为没有源(DataContext
,{ {1}},ElementName
)已被指定。
我不知道你的RelativeSource
如何处理上下文,如果Source
没有受到影响,这样的绑定将不起作用。您需要直接绑定:
UserControl
这当然会破坏在UserControl本身绑定的目的。但除非你发布一些相关的代码,否则很难说出错了。
同时检查VisualStudio中的“输出”窗口,绑定错误将显示在那里,并可能提供有关错误的有用信息。