0

ComboBoxデフォルト項目「選択なし」を表示する必要がある境界があります。ComboBoxユーザーがリストからこのオプション (「選択なし」) を選択すると、テキストが選択されず、項目が選択されずに閉じる必要があります。

これらはデータリソースです

<UserControl.Resources>
    <my:iTimeKeepBaseDataSet x:Key="iTimeKeepBaseDataSet" />
    <CollectionViewSource x:Key="codeSetsViewSource" Source="{Binding Path=codeSets, Source={StaticResource iTimeKeepBaseDataSet}}" />
    <CollectionViewSource x:Key="allMattersViewSource" Source="{Binding Path=allMatters, Source={StaticResource iTimeKeepBaseDataSet}}" />
    <my:CodeIdToDetailsConverter x:Key="codeIdDetailsConverter" />

</UserControl.Resources>

これは ComboBox データ テンプレートです

                  <DataTemplate x:Key="CodeSetDataCellEditTemplate">
                        <ComboBox DataContext="{StaticResource codeSetsViewSource}"
                                  ItemsSource="{Binding}"
                                  SelectedValuePath="{Binding Path=codeSetId}"
                                  SelectionChanged="OnCodeSetsSelectionChanged"
                                  Style="{StaticResource ComboboxTemplate}">

                            <ComboBox.ItemTemplate>
                                <DataTemplate>

                                    <TextBlock>
                                        <TextBlock.Text>
                                            <MultiBinding StringFormat="{}{0} - {1}">
                                                <Binding Path="codeSetId" />
                                                <Binding Path="codeSetName" />
                                            </MultiBinding>
                                        </TextBlock.Text>
                                    </TextBlock>
                                </DataTemplate>
                            </ComboBox.ItemTemplate>
                        </ComboBox>
                    </DataTemplate>

DataGrid のテンプレート列

<DataGridTemplateColumn x:Name="codeSetId1Column"
                                        Width="SizeToHeader"
                                        CellEditingTemplate="{StaticResource CodeSetDataCellEditTemplate}"
                                        Header="Code Set ID 1"
                                        my:DataGridAttachedProperty.ColumnName="codeSetId1">

これに対する解決策を教えてください。

前もって感謝します

4

1 に答える 1

0

CompositeCollection を使用できます

    <CompositeCollection>
       <ComboBoxItem IsEnabled="False" Foreground="Black">Select Item</ComboBoxItem>
       <CollectionContainer Collection="{Binding Source={StaticResource DataKey}}" />    
    </CompositeCollection>

ただし、ここでは Binding を使用できません。回避策は、CompositeCollection でBindingProxyを使用することです。

詳細については、こちらの回答とコメントを参照してください

于 2012-09-04T11:09:16.413 に答える