如何在使用ItemsSource和模板绑定时设置ComboBoxItem属性?

时间:2015-08-12 06:26:40

标签: wpf combobox

当我手动创建组合框时,没问题,但由于设置for($i=1;$i<13;$i++) { $orderproductmasters[$i] = $this->Orderproductmaster->find('count', array('conditions'=>array('Ordermaster.orderstatusmaster_id'=>1, 'Month(Orderproductmaster.created)'=>$i))); } 现在自动填充组合框,我不知道如何设置每个ItemsSource的属性。目前,我需要为每个项目设置ComboBoxItem操作(一个全局值)和Selected(每个项目的值不同)。

目前我只定义组合框项目的外观:

Tag

如何设置我提到的属性? 注意:这些属性属于<ComboBox ItemsSource="{Binding Path=Modules}" <ComboBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Height="16" Width="16" Source="{Binding ObjectData.ImageSource}" /> <Label Content="{Binding ObjectData.Label}"/> </StackPanel> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox>

ComboBoxItem是我的窗口类的属性:

Modules

1 个答案:

答案 0 :(得分:1)

您可以在ComboBox的ItemContainerStyle中设置ComboBoxItem属性:

<ComboBox ...>
    <ComboBox.ItemContainerStyle>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Tag" Value="{Binding TagValue}"/>
            <Setter Property="IsSelected" Value="{Binding Selected}"/>
        </Style>
    </ComboBox.ItemContainerStyle>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            ...
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

当&#34;全球&#34; Selected属性不在项目视图模型中,您将明确设置绑定源,例如RelativeSource/FindAncestor