C# 带复选框的WPF组合框-折叠显示值

C# 带复选框的WPF组合框-折叠显示值,c#,wpf,binding,combobox,C#,Wpf,Binding,Combobox,我有一个组合框,其中有一个ItemTemplate,其中有一个复选框read Dropdown CheckBoxList。基本上,我希望在选择某个项目时,以及在未选择某个项目时,组合框中的文本都有一个单独的绑定。我有一个问题,但似乎无法让他们使用我的设置,或者找不到他们有一些问题。我甚至试过一些混合和搭配。通常我发现,如果用户选中几个框,然后单击组合框,或者没有正确地更新文本,那么当没有特别选择某个项目时,它们可能不起作用 我的xaml是这样的:重点项目是数据模板,其中包含组合框: 任何帮助都将

我有一个组合框,其中有一个ItemTemplate,其中有一个复选框read Dropdown CheckBoxList。基本上,我希望在选择某个项目时,以及在未选择某个项目时,组合框中的文本都有一个单独的绑定。我有一个问题,但似乎无法让他们使用我的设置,或者找不到他们有一些问题。我甚至试过一些混合和搭配。通常我发现,如果用户选中几个框,然后单击组合框,或者没有正确地更新文本,那么当没有特别选择某个项目时,它们可能不起作用

我的xaml是这样的:重点项目是数据模板,其中包含组合框:


任何帮助都将不胜感激

你可以发布整个用户控制。我想你做得很好,只是在选择存储类型时出错了没问题,我已经用整个xaml更新了这个问题。
<UserControl x:Class="BestClient.ucReportViewer"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:BestClient"
         mc:Ignorable="d" 
         d:DesignHeight="315" d:DesignWidth="388" Background="#FFD7DFEC">

<UserControl.Resources>
    <DataTemplate x:Key="datetime">
        <StackPanel Orientation="Horizontal" Height="35">
            <TextBlock Text="{Binding rfName}" Width="100" VerticalAlignment="Center" />
            <DatePicker Tag="{Binding rfParameter}" SelectedDate="{Binding rfValues, Mode=TwoWay}" Width="200" VerticalAlignment="Center" />
        </StackPanel>
    </DataTemplate>
<DataTemplate x:Key="office">
    <StackPanel Orientation="Horizontal" Height="35">
        <TextBlock Text="{Binding rfName}" Width="100" VerticalAlignment="Center" />
        <ComboBox x:Name="officeComboBox" Tag="{Binding rfParameter}" Width="200" ItemsSource="{Binding Path=DataContext.OfficeList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}" VerticalAlignment="Center">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <CheckBox Tag="{Binding id}" IsChecked="{Binding isSelected}" Width="200" Content="{Binding value}" Margin="2" x:Name="CheckBox" Checked="OfficeCheckBox_Checked"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </StackPanel>
</DataTemplate>
    <DataTemplate x:Key="carrier">
        <StackPanel Orientation="Horizontal" Height="35">
            <TextBlock Text="{Binding rfName}" Width="100" VerticalAlignment="Center" />
            <ComboBox Tag="{Binding rfParameter}" Width="200" ItemsSource="{Binding Path=DataContext.CarrierList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}" VerticalAlignment="Center">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <CheckBox Tag="{Binding id}" IsChecked="{Binding isSelected}" Width="200" Content="{Binding value}" Margin="2"/>
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="defaultTemplate">
        <StackPanel Orientation="Horizontal" Height="35">
            <TextBlock Text="{Binding rfName}" Width="100" VerticalAlignment="Center" />
            <TextBox Tag="{Binding rfParameter}" Width="200" VerticalAlignment="Center" />
        </StackPanel>
    </DataTemplate>
    <local:ReportFilterTemplateSelector x:Key="ReportFilterTemplateSelector" />
</UserControl.Resources>
<Grid x:Name="ReportViewer">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="45"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="45"/>
    </Grid.RowDefinitions>
    <Viewbox Grid.Row="0" Grid.Column="0">
        <TextBlock Margin="10" TextWrapping="Wrap" Text="Select a Report:"/>
    </Viewbox>
    <ComboBox Grid.Column="1" Margin="10" Grid.ColumnSpan="2" ItemsSource="{Binding ReportList}" DisplayMemberPath="Value" SelectedValuePath="Key" SelectedItem="{Binding SelectedReport}" VerticalContentAlignment="Center" />
    <ListView x:Name="FilterList" Margin="10,0" Grid.Row="1" Grid.ColumnSpan="3" ItemTemplateSelector="{StaticResource ReportFilterTemplateSelector}" ItemsSource="{Binding reportFilters, Mode=TwoWay}" />
    <Button Command="{Binding OpenReport}" Content="Open Report" Grid.Column="2" Margin="10" Grid.Row="2" VerticalAlignment="Stretch"/>
</Grid>
</UserControl>
{Binding Path=DataContext.OfficeListValues, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}