2012-06-23 3 views
0

у меня есть XAML-файл со следующей структурой:Button.Command не не работает

<UserControl> 
    <Grid> 
     ... 
     <ListBox> 
      <ListBox.ItemTemplate>    
       <DataTemplate> 
        <Expander> 
         <ListBox> 
          <ListBox.ItemTemplate> 
           <DataTemplate> 
            <Expander> 
             <StackPanel> 
              <kb:Resizer> 
               <DataGrid> 
                <DataGrid.Columns> 
                 ... 
                  <DataGridTemplateColumn IsReadOnly="True"> 
                   <DataGridTemplateColumn.CellTemplate> 
                    <DataTemplate> 
                     <Button Style="{StaticResource ChromelessButton}"> 
                      <Button.CommandParameter> 
                       <MultiBinding Converter="{StaticResource MultiBindingConverter}"> 
                        <Binding /> 
                        <Binding Path="DataContext.Items" RelativeSource="{RelativeSource AncestorType=DataGrid}"/> 
                       </MultiBinding> 
                      </Button.CommandParameter> 
                      <Button.Content> 
                       <Image Source="./../Images/close.png" Width="15"></Image> 
                      </Button.Content> 
                      <Button.Command>                
                       <MultiBinding Converter="{StaticResource TriggerConverter}"> 
                        <Binding Path="DataContext.DeleteCommand" 
                         RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type local:MyClass}}" /> 
                        <Binding /> 
                       </MultiBinding> 
                      </Button.Command> 
                     </Button> 
                    </DataTemplate>            
                   </DataGridTemplateColumn.CellTemplate>           
                  </DataGridTemplateColumn> 
                 </DataGrid.Columns> 
                </DataGrid> 
               </kb:Resizer>          
              </StackPanel> 
             </Expander> 
           </DataTemplate> 
          </ListBox.ItemTemplate> 
         </ListBox> 
        </Expander>     
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </Grid> 
</UserControl> 

программа компилирует и выполняет должным образом, и я не получаю никаких сообщений об ошибках на выходе, но DeleteCommand никогда не получает удар.

Что я делаю неправильно?

+5

Datagrid в списке в списке ... Я бы не хотел использовать ваше приложение! –

+0

Где вы определили свой DeleteCommand? Является ли пользователь управляющим MyClass? – Whyllee

ответ

1
<Button.Command>                
    <MultiBinding Converter="{StaticResource TriggerConverter}"> 
    <Binding Path="DataContext.DeleteCommand" 
     RelativeSource="{RelativeSource Mode=FindAncestor, 
       AncestorType={x:Type local:MyClass}}" /> 
    <Binding /> 
    </MultiBinding> 
</Button.Command> 

Это XAML в коде выглядит проблематично ...

  • Когда вы DeleteCommand в DataContext то что потребность TriggerConverter?
  • Этот AncestorType={x:Type local:MyClass}}" выглядит неправильно; это указывает на некоторый контроль или ваш класс? Я не вижу этого элемента управления (типа MyClass) в вашей иерархии управления. Проверьте это как работает RelativeSource.
Смежные вопросы