@Amirの回答に加えて、Visibilityをバインドすることでボタンの数を動的に制御できます。
<UniformGrid Rows="1">
 <Button Content="Ok" Visiblity="{Binding IsShowOkayButton, Converter={...}"/>
 <Button Content="Cancel" Visiblity="{Binding IsShowCancelButton, Converter={...}}"/>
</UniformGrid>
列挙型で使用: (ConfirmType と IsShowCancelButton が同じ ViewModel にあると仮定)
public enum ConfirmType { Confirm, ConfirmOrCancel }
public ConfirmType ConfirmType { get => _ConfirmType; 
            set {
                switch (_ConfirmType)
                {
                    case ConfirmType.Confirm:
                        IsShowCancelButton = false;
                        break;
                    case ConfirmType.ConfirmOrCancel:
                        IsShowCancelButton = true;
                        break;
                }
                // Your RaisePropertyChanged code here
            }
        }