gpt4 book ai didi

c# - 如何在 C#/WPF/XAML 中将整个对象而不只是一个属性绑定(bind)到组合框列表的控件?

转载 作者:行者123 更新时间:2023-12-02 15:02:14 25 4
gpt4 key购买 nike

我有这个 xaml 代码:

    <ComboBox Height="23" HorizontalAlignment="Left" Margin="598,0,0,16" x:Name="comboBoxActivityRecordingOrder" VerticalAlignment="Bottom" Width="248" SelectedItem="{Binding SelectedItem.t.activityrecordingorder, ElementName=listViewTasks, UpdateSourceTrigger=PropertyChanged}" SelectionChanged="comboBoxActivityRecordingOrder_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Height="23" Width="Auto" ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<!-- multi column combo box http://stackoverflow.com/questions/23893348/wpf-multicolumn-combobox -->
<TextBlock Grid.Column="0" Text="{Binding activityrecordingordertype.code, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Grid.Column="1" Text="{Binding banumber, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Grid.Column="2" Text="{Binding ***, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ActivityRecordingOrderConverter}}" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

在第 3 列中,我必须显示一个字符串,我可以使用整个对象的 ActivityRecordingOrderConverter 生成该字符串。我必须在 *** 中输入什么才能将整个对象提供给转换器?我试过“这个”、“ self ”,什么也没放。都不行。

最佳答案

要直接绑定(bind)到绑定(bind)源,您只需将路径关闭即可。更明确地说,您可以指定一个空字符串或一个点 (.)。在属性路径语法中,单独的 . 是一个特殊字符,表示“当前对象”。

{Binding Path=''}
{Binding Path=.}
{Binding Converter={...}}

还有另一个值得了解的“特殊”路径字符:使用 / 告诉绑定(bind)引擎深入到前面集合中的当前项,当前项所在的位置是由集合的默认 ICollectionView 指定的。当单独使用时,前面的集合将只是绑定(bind)源本身。

例子:

<ListBox ItemsSource="{Binding Items}"
IsSynchronizedWithCurrentItem="True" />

<TextBlock Text="{Binding Items/Name}" />

在这里,绑定(bind)到 Items/Name 告诉绑定(bind)引擎,“绑定(bind)到 Items 中当前所选项目的 Name。设置IsSynchronizedWithCurrentItemtrue 告诉 ListBox 将 Collection View 中的所选项目与所选列表框项目同步。最终结果是文本 block 显示在列表中选择的任何项目的属性。

关于c# - 如何在 C#/WPF/XAML 中将整个对象而不只是一个属性绑定(bind)到组合框列表的控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48665485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com