Wpf 以编程方式在MVVM中添加按钮,但命令不';行不通

Wpf 以编程方式在MVVM中添加按钮,但命令不';行不通,wpf,mvvm,telerik,Wpf,Mvvm,Telerik,我试图动态添加按钮,但命令不起作用 我犯了个错误 已为ItemsControl容器类型的项忽略ItemTemplate和ItemTemplateSelector;Type='RadRibbonButton' ... ButtonCommand=新的DelegateCommand(ExecuteCommand); 私有void ExecuteCommand() { ... } 检查它是否在调试模式下到达命令 您的ButtonsCollection是依赖项属性吗?你提高零钱了吗 您不应该向but

我试图动态添加按钮,但命令不起作用

我犯了个错误

已为ItemsControl容器类型的项忽略ItemTemplate和ItemTemplateSelector;Type='RadRibbonButton'


...
ButtonCommand=新的DelegateCommand(ExecuteCommand);
私有void ExecuteCommand()
{
...
}
  • 检查它是否在调试模式下到达命令
  • 您的ButtonsCollection是依赖项属性吗?你提高零钱了吗
  • 您不应该向buttons集合添加实际的按钮,这不是纯mvvm。您需要在数据模板中创建按钮,并在集合中创建按钮内容等属性
  • 如果您仍然坚持创建实际的按钮,我认为模板“”将不起作用。试试看”
  • 检查它是否在调试模式下到达命令
  • 您的ButtonsCollection是依赖项属性吗?是否提出其更改
  • 您不应该向buttons集合中添加实际按钮,这不是纯mvvm。您需要在数据模板中创建按钮,并在集合中创建按钮内容等属性
  • 如果您仍然坚持创建实际的按钮,我认为模板“”不起作用。试试看
  • 它够不着
  • 可观察的按钮集合(我可以在视图中看到按钮)
  • 3.我应该创建按钮并将其添加到集合运行时(这背后有特殊的逻辑)

  • 它够不着
  • 可观察的按钮集合(我可以在视图中看到按钮)
  • 3.我应该创建按钮并将其添加到集合运行时(这背后有特殊的逻辑)

    <telerik:RadRibbonGroup>
     ...
    <telerik:RadRibbonGroup.DataContext>
        <vm:Group1/>
    </telerik:RadRibbonGroup.DataContext>
    
            <ItemsControl ItemsSource="{Binding ButtonsCollection}"  >
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button Content="{Binding}" Command="{Binding DataContext.ButtonCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadRibbonGroup}}}"   />
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
    
    </telerik:RadRibbonGroup>
    
    
    
    ButtonCommand= new DelegateCommand(ExecuteCommand);
    
    private void ExecuteCommand()
    {
         ...
    }