2013-10-18 23 views
0

我有一個用戶控件(自定義的組合框),我將其包含在另一個用戶控件中。我想根據包含我的ComboBox UserControl的主用戶控件中的數據在該Customized ComboBox UserControl上設置樣式。包含的用戶控件上的樣式

這裏是我的代碼

<MultiSelectComboBox:MultiUnitSelectControl x:Name="MultiUnitCombo" Grid.Row="0" Width="90" Grid.Column="0" ItemsSource="{Binding LstUnit}" Margin="0,10,0,2" FontWeight="Bold" HorizontalAlignment="Left"> 
    <MultiSelectComboBox:MultiUnitSelectControl.Style> 
     <Style TargetType="{x:Type ComboBox}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Items.Count,ElementName=UnitCombo}" Value="1"> 
        <Setter Property="Visibility" Value="Collapsed"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </MultiSelectComboBox:MultiUnitSelectControl.Style> 
</MultiSelectComboBox:MultiUnitSelectControl> 

這是我定製的用戶控件。現在我想要的是我想在項目計數等於1時將其摺疊。UnitCombo是基於其ItemsCount的我的主UserControl中的組合框,我想在Included UserControl上設置Visibility。

但是當我在主用戶​​控件應用此樣式到ComboBox它的工作原理

<ComboBox.Style> 
             <Style TargetType="{x:Type ComboBox}"> 
              <Style.Triggers> 
               <DataTrigger 
                 Binding="{Binding Path=Items.Count, ElementName=UnitCombo}" 
                 Value="1"> 
                <Setter Property="SelectedIndex" Value="0" /> 

               </DataTrigger> 
              </Style.Triggers> 
             </Style> 
            </ComboBox.Style> 

但應用在用戶控件包含相同的風格犯規顯示anything.It樣掛起的整體視圖,並顯示什麼就好像這些控件是隱藏的或者其他東西一樣。

我該怎麼做?

回答

0

我希望你通過設置它的ItemsSourceObservableCollection盡顯你UnitCombo,那麼你將需要綁定到ItemsSource.Count而不是Items.Count

  <DataTrigger Binding="{Binding Path=ItemsSource.Count,ElementName=UnitCombo}" Value="1"> 
       <Setter Property="Visibility" Value="Collapsed"/> 
      </DataTrigger> 

它會工作。

+0

查看我更新的問題 – Vishal