2011-01-26 16 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

+0

これは素晴らしい方法です。また、アイテム - コンテナを変更することもできますが、あなたのソリューションは私には絶対的に適しているように見えます。 – HCL

答えて

2

DataTemplateを定義している場合、DisplayMemberは機能しません。しかし、あなたはReportNameへのXPathバインディングを持つTextBlockを持っていることがわかりました。これはトリックを行う必要があります。このバインディングをチェックし、間違いがあると仮定します。 Visual Studioの出力ウィンドウでバインドエラーを確認します。

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

あなたはXPathバインディングが必要なのですか?わからない場合は、Text="{Binding XPath=ReportName}"からText="{Binding ReportName}"に置き換えてください。たぶんこれが唯一の問題です。

+0

それはうまくいった。ありがとう。 =) – Willem

+0

私の質問は、どうすれば私のボタンをクリック可能にするのですか? – Willem

+0

Button.Clickの汎用ハンドラを登録することも、DataTemplateに直接イベントハンドラを登録することもできます。しかし、新しい投稿を作成することをお勧めします。 – HCL

関連する問題