【问题标题】:How to open the combobox in datagrid如何在datagrid中打开组合框
【发布时间】:2012-10-15 11:44:57
【问题描述】:

我对 Silverlight 应用程序非常陌生。我最近一天一直在尝试这个,但我还是无法做到。在我的情况下,它需要点击三下才能打开组合框。

我的 XAML 代码:

<sdk:DataGridTemplateColumn Header="Category" Width="100">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate> 
            <ComboBox Name="cmbCategory"
                IsDropDownOpen="True" 
                ItemsSource="{Binding Source={StaticResource MyViewModel},Mode=OneWay,Path=pcProjTypeTaskCtry}" 
                DisplayMemberPath="TaskCtgyName" SelectedValuePath="TaskCtgy_FK" 
                SelectedValue="{Binding piTaskCtgy_FKField,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="{Binding psTaskCtgyNameField,UpdateSourceTrigger=PropertyChanged}"/> 
        </DataTemplate>

    </sdk:DataGridTemplateColumn.CellTemplate> 
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="SubCategory" Width="110">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Name="tbSubCategory" Text="{Binding Path=psTaskSubCtgyNameField,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="{Binding psTaskSubCtgyNameField}" >
            </TextBlock>
        </DataTemplate> 
    </sdk:DataGridTemplateColumn.CellTemplate>
    <sdk:DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Source={StaticResource MyViewModel},Mode=TwoWay,Path=pcTaskSubCtry}" 
                DisplayMemberPath="TaskSubCtgyName" SelectedValuePath="TaskSubCtgyName" 
                SelectedItem="{Binding Source={StaticResource MyViewModel},Path=SelectedSubTask,Mode=TwoWay}" 
                SelectedValue="{Binding psTaskSubCtgyNameField,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                ToolTipService.ToolTip="{Binding psTaskSubCtgyNameField}"> 
            </ComboBox>
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>

【问题讨论】:

  • 您确实必须鼠标按下(单击)3 次才能让组合框做出响应?这根本不是预期的行为,您的 xaml 中没有任何内容表明它是故意的。您是否完全自定义了控件模板或任何其他可能导致它的内容?

标签: silverlight datagrid combobox


【解决方案1】:

向组合框添加一个 Dropdownopened 事件,然后将数据源分配给后端的组合框。

        var obj = (ComboBox)sender;
        obj.ItemsSource = Your list;
        obj.DisplayMemberPath = "pcTaskSubCtry";

在选择更改事件中,您可以通过投射所选项目来分配所选项目,如下所示。

 ComboBox cmbbox = (ComboBox)sender;
        if (cmbbox.SelectedValue != null)
        {
            Yourobject obj = new Yourobject() ;
            obj = MainDataGrid.SelectedItem as Yourobje;
            obj.pcTaskSubCtry= Yourobje.pcTaskSubCtry;
        }

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2011-08-14
    • 2014-06-05
    • 2016-02-25
    • 2014-02-03
    • 2017-08-20
    • 2013-01-27
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多