2011-01-26 63 views
0

我想添加一个按钮到组合框ItemTemplate,它允许用户点击它并移除点击的项目。带项目模板中的按钮的组合框

这是我到目前为止有:

<dxe:ComboBoxEdit Name="cboUserCustomReports" 
         Width="300" Height="Auto" 
         Margin="0,5,0,5" 
         ItemsSource="{Binding Path=UserReportProfileList,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" 
         EditValue="{Binding Path=UserReportProfileID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
         ValueMember="UserReportProfileID" 
         DisplayMember="ReportName" 
         PopupClosed="cboUserCustomReports_PopupClosed"> 
      <dxe:ComboBoxEdit.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="23"/> 
         </Grid.ColumnDefinitions> 
         <TextBlock Grid.Column="0" Text="{Binding XPath=ReportName}" 
            VerticalAlignment="Stretch" HorizontalAlignment="Left"/> 
         <Button Grid.Column="1" 
           Width="23" Height="23" 
           VerticalAlignment="Center" HorizontalAlignment="Right"> 
          <Button.Template> 
           <ControlTemplate> 
            <Image Source="/RMSCommon;component/Resources/Delete.ico"></Image> 
           </ControlTemplate> 
          </Button.Template> 
         </Button> 
        </Grid> 
       </DataTemplate> 
      </dxe:ComboBoxEdit.ItemTemplate> 
     </dxe:ComboBoxEdit> 

我的问题是,我Displaymember未在TextBlock中显示,只有按钮模板的图像显示。

这里是什么样子的图片:

ComboBox

我如何解决我的问题?

感谢

+0

还是有更合乎逻辑的方法来解决这个问题? – Willem 2011-01-26 08:04:35

+0

IMO这是一个不错的方法。您也可以更改物品容器,但您的解决方案对我来说绝对合适。 – HCL 2011-01-26 08:05:27

回答

2

如果你定义一个DataTemplate DisplayMember将无法正常工作。不过,我已经看到你有一个TextBlock与XPath绑定到ReportName。这应该做的伎俩。检查这个绑定,我认为在那里是错误的。检查Visual Studio输出窗口是否有绑定错误。

<TextBlock Grid.Column="0" 
      Text="{Binding XPath=ReportName}" 
      VerticalAlignment="Stretch" HorizontalAlignment 

你确定你需要XPath绑定吗?如果您不确定,请尝试更换Text="{Binding XPath=ReportName}"Text="{Binding ReportName}"。也许这是唯一的问题。