c# - WPF,Caliburn.micro:如何在当前绑定上下文之外绑定属性?
问题描述
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Key}"></TextBlock>
<ComboBox ItemsSource="{Binding Value}" SelectedItem="{Binging SomeProperty}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
我在 Dictionary 里面,我想绑定SelectedItem="{Binging SomeProperty}"
SomeProperty 是 ViweModel 的一个属性,而不是 Dictionary 里面。怎么做?如何绑定到当前绑定上下文之外的属性。
解决方案
对于Binding
的Window.DataContext
属性,您可以使用以下方式进行操作RelativeSource
:
<ComboBox ItemsSource="{Binding Value}" SelectedItem="{Binding DataContext.SomeProperty, RelativeSource={RelativeSource AncestorType=Window}}">
或者,如果您想SelectedItem
在某些TextBox
(例如集合string
)中显示:
<TextBox Text="{Binding MyCollection/}"/>
<ComboBox ItemsSource="{Binding MyCollection}" IsSynchronizedWithCurrentItem="True">
MyCollection
ICollectionView
with "/" 获取用于DefaultView
for的当前项MyCollection
。阅读更多>>>
推荐阅读
- r - Conditionally split dataframe in rows according to value in cell (in R!)
- botframework - BotFramework TurnContext SendActivityAsync“对象引用未设置为对象的实例”
- javascript - 如何使用浏览器插件隐藏 Ionic 5 Capacitor 中的 URL 栏?
- php - 如何mysqli num行简单的回显和空数据库
- nginx - 使用 nginx 在 magento 中的某些内部子存储页面出现 404 错误
- http - 如何使 curl 接受安全 cookie 公开的 http 连接
- sql - 如何在 Zend Framework 3 中使用 GROUP_CONCAT?
- javascript - 如何使用 Angular 将页面属性导入数据服务?
- android - 如何根据字段的值仅查询 firestore 集合组中的某些文档?
- python - Spark Streaming 删除重复项并仅保留每个键的第一条记录