【问题标题】:GridViewColumn with ComboBox and UserControl带有 ComboBox 和 UserControl 的 GridViewColumn
【发布时间】:2013-09-18 03:40:56
【问题描述】:

我有一个带有 Combobox 的 GridViewColumn 选择了基于 ComboBox 的 ComboBox 我想动态放置 UI 元素。下面给出的是代码。OperatorList 具有三个值“Between”、“After”、“Before”。基于此选择,模板具有要加载。如果“之间”多个文本框,否则单个文本框。这部分工作正常。但是要获取此内容并存储在模型类中的每一行是我遇到问题的地方。

<StackPanel>
     <ComboBox Grid.Column="0" ItemsSource="{Binding Path=OperatorList}"  IsEditable="True"
                                          IsSynchronizedWithCurrentItem="True" 
                                          SelectedValue="{Binding ReferenceOperatorSelected}"  />
                                                    <UserControl x:Name="MyControl">

                                                    </UserControl>

                                                </StackPanel>
                                                <DataTemplate.Triggers>
                                                    <DataTrigger Binding="{Binding ReferenceOperatorSelected}" Value="Between">
                                                        <Setter TargetName="MyControl" Property="ContentTemplate" Value="{StaticResource MultipleTextBoxTemplate}"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding ReferenceOperatorSelected}" Value="After">
                                                        <Setter TargetName="MyControl" Property="ContentTemplate" Value="{StaticResource SingleTextBoxTemplate}"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding ReferenceOperatorSelected}" Value="Before">
                                                        <Setter TargetName="MyControl" Property="ContentTemplate" Value="{StaticResource SingleTextBoxTemplate}"></Setter>
                                                    </DataTrigger>
                                                </DataTemplate.Triggers>




    <DataTemplate x:Key="MultipleTextBoxTemplate">

                                    <StackPanel>

                                        <TextBox Text="{Binding Path=BetweenValue1,Mode=TwoWay,NotifyOnSourceUpdated=True}" MinWidth="40"></TextBox>
                                        <TextBox Text="{Binding Path=BetweenValue2,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" MinWidth="40"></TextBox>
                                    </StackPanel>
                                </DataTemplate>

在我的模型类中,我有两个属性 BetweenValue1 和 BetweenVALue2 ...当我在文本框中键入值时,这些属性不会更新..

【问题讨论】:

  • BetweenValue1 和BetweenVALue2 在您的模型或视图模型上吗?并且包含组合和用户控件的堆栈面板是您的 gridview 列模板?
  • BetweenValue1 和 BetweenValue2 将在模型中进行跟踪...是的 StackPanel 和 usercontrol 是 gridview 列模板的一部分..
  • 所以 OperatorList,ReferenceOperatorSelected 都是您模型上的属性吗?
  • 是的,它们是我模型中的属性

标签: c# wpf gridview combobox


【解决方案1】:

您尚未为 UserControl 设置内容。试试看

<UserControl x:Name="MyControl" Content="{Binding}"/>

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 2011-04-01
    • 2012-02-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2010-09-22
    相关资源
    最近更新 更多