2012-09-04 54 views
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> 

這是組合框的數據模板

    <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"> 

請建議我一個解決方案。

在此先感謝

回答

0

您可以使用CompositeCollection

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

但是,你不能在這裏使用綁定,解決方法是使用BindingProxy與CompositeCollection

my answer這裏更多評論詳情

+0

感謝您的重播,我會盡力讓您。 –