簡體   English   中英

如何將整個對象而不只是屬性綁定到C#/ WPF / XAML中的組合框列表控件?

[英]How to bind the whole object instead of just a property to controls of a combobox-list in C#/WPF/XAML?

我有這個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>

在第三列中,我必須顯示一個字符串,該字符串可以使用ActivityRecordingOrderConverter從整個對象生成。 要把整個對象交給轉換器,我必須加什么符號? 我嘗試了“這個”,“自我”,什么也沒做。 都行不通。

要直接綁定到綁定源,您可以簡單地保留路徑。 更明確地說,您可以指定一個空字符串或單個點( . )。 在屬性路徑語法中,為lone . 是一個特殊字符,表示“當前對象”。

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

還有這是值得了解的另一個“特殊”的路徑字符:使用/告訴綁定引擎鑽入當前項目前面的集合,其中當前項是集合的默認指定的在ICollectionView 如果單獨使用,則前面的集合將只是綁定源本身。

例:

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

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

在這里,綁定到Items/Name告訴綁定引擎“綁定到Items當前所選項目的Name 。將IsSynchronizedWithCurrentItem設置為true告訴ListBox將集合視圖中的所選項目與所選列表框項目同步。結束結果是該文本塊顯示了列表中選擇的任何項目的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM