小编Mar*_*arc的帖子

如何为特定按钮事件触发ViewModel命令

如何通过按钮的特定事件调用ViewModel上的命令,例如MouseDoubleClick

wpf command button mvvm mouseevent

8
推荐指数
1
解决办法
3万
查看次数

无法将类型为"System.Int32"的对象强制转换为在DataReader.GetString()中键入"System.String"

我试图将数据库中的数据添加到acombobox.

        try
        {
            SqlCeCommand com = new SqlCeCommand("select * from Category_Master", con);
            SqlCeDataReader dr = com.ExecuteReader();
            while(dr.Read()){
                string name = dr.GetString(1);
                cmbProductCategory.Items.Add(name);
            }
        }
        catch(Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message, System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

无法将"System.Int32"类型的对象强制转换为"System.String"类型

我在这里错过了什么?

c# sqldatareader

8
推荐指数
1
解决办法
6万
查看次数

如何在代码中访问DataGridCell的数据对象?

基本上我绑定了数据网格,使其类似于主题的时间表 - 每行代表一个学期的学科,并且该学期内的每个单元代表一个主题.

我现在正在尝试添加拖放功能,以便您可以将其他主题拖动到网格上,这将更新基础数据结构.

我可以使用一些可视树方法来查找用户正在拖动新主题的DataGridCell,但我不知道如何访问单元格绑定到它的值(主题)以替换空白/占位符值与新主题.有没有办法访问基础值或者我应该重构我创建此程序的整个方法?

网格和要拖动到其上的主题的示例

c# data-binding wpf datagrid c#-4.0

7
推荐指数
1
解决办法
2809
查看次数

如何定义用于向项目添加多个文件的模板?

我的新项目是我第一次看WPF MVVM和WCF,我喜欢它,但似乎我创建了很多文件,总是在相同的基本设置和结构中.

我想知道是否有人有办法将某种文件夹/项目结构定义为输入并自动创建各种POCO,视图,模型,服务类和接口,或许可以使用某种一致的文件名前缀.

然后开发人员可以进入并切割代码以获取他们的数据.

我看到了这个,这是一个正确的想法:

http://www.codeproject.com/Articles/16515/Creating-a-Custom-Tool-to-Generate-Multiple-Files

一位同事还建议批量文件可能值得调查.对所有想法持开放态度,感谢您的帮助.

更新//

这将在项目创建后进行.因此文件夹和项目已经到位,但您希望为端到端服务调用和演示添加必要的文件.

macros automation templates visual-studio

7
推荐指数
1
解决办法
2684
查看次数

如何在wpf mvvm中隐藏/显示堆栈面板

在MVVM场景中,我想基于超链接点击或图像点击显示/隐藏用户控件.如何在XAML中实现这一目标?

wpf xaml mvvm

7
推荐指数
2
解决办法
1万
查看次数

如何使用PRISM和MEF将视图注入UI?

我已经搜索了一些教程,甚至看了多元化的PRISM简介.但是,大多数示例都基于使用统一容器和一些缺少有关如何使用Mef容器实现此功能的信息.我的简单helloworld模块基于Web教程.我的代码是相同的,除了我只停留在HelloModule并使用Mef,而不是Unity作为教程显示:

我的主要问题是如何使用我的视图模型初始化我的视图.我通过实验找到的唯一工作方式是在View构造函数中初始化视图模型:

HelloView.xaml.cs
namespace Hello.View
{
    [Export]
    public partial class HelloView : UserControl, IHelloView
    {
        public HelloView()
        {
            InitializeComponent();
            Model = new HelloViewModel(this);
        }

        public IHelloViewModel Model
        {
            //get { return DataContext as IHelloViewModel; }
            get { return (IHelloViewModel)DataContext; }
            set { DataContext = value; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和标准模块初始化代码:

[ModuleExport(typeof(HelloModule), InitializationMode=InitializationMode.WhenAvailable)]
    public class HelloModule : IModule
    {
        IRegionManager _regionManager;

        [ImportingConstructor]
        public HelloModule(IRegionManager regionManager)
        {
            _regionManager = regionManager;
        }

        public void Initialize()
        {
            _regionManager.Regions[RegionNames.ContentRegion].Add(ServiceLocator.Current.GetInstance<HelloView>());
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,有人可以告诉正确的方法如何做到这一点,我必须在模块初始化部分完成.

prism mef mvvm

6
推荐指数
2
解决办法
5914
查看次数

生成nuxt.js应用程序以在Web服务器上的子目录中工作

我想将静态nuxt.js应用程序(使用构建nuxt generate)部署到Web服务器的子目录中。dist默认情况下,nuxt将生成的文件放在目录中:

默认输出

如果我在文件夹的父目录上启动Web服务器dist并使用以下命令打开页面:

http://localhost:34360/dist/

该站点(未成功)尝试从域根目录加载脚本文件:

404默认

我尝试publicPath在nuxt配置中设置属性:

build: {
  publicPath: '/dist/'
}
Run Code Online (Sandbox Code Playgroud)

该应用程序编译为:

使用publicPath输出

现在,nuxt将脚本文件下移一级(/ dist / dist),然后再次在根目录下进行搜索(/ dist),因此仍然找不到文件

公共路径错误

无论我放置在服务器上的哪个目录中,如何生成该站点,以便加载脚本和资产并使其自包含?

该问题已在GitHub上讨论,但建议的提示(使用publicPath)不起作用,如上所示。

旁注:我不想指定publicPath绝对值(即http://localhost:8080/dist),它可以工作,但会带来新的问题。

vue.js nuxt.js

6
推荐指数
2
解决办法
3379
查看次数

在 Azure DevOps 管道中为 WebApp 创建部署槽

我想从 Azure DevOps 管道执行以下操作:

  • 为现有的 WebApp 创建新的部署槽 ( staging)
  • 将应用程序部署到新插槽
  • 交换staging插槽production
  • 删除以前的production,现在的staging插槽

到目前为止我所拥有的是:

  • 将应用程序部署到新插槽
  • staging与生产交换插槽
  • 删除以前的production,现在的staging插槽

YAML:

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'BizSpark(...)'
    appType: 'webApp'
    WebAppName: 'foo'
    deployToSlotOrASE: true
    ResourceGroupName: 'Default-WestEurope'
    SlotName: 'staging'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/**/*.zip'

- task: AzureAppServiceManage@0
  inputs:
    azureSubscription: 'BizSpark(..)'
    Action: 'Swap Slots'
    WebAppName: 'foo'
    ResourceGroupName: 'Default-WestEurope'
    SourceSlot: 'staging'

- task: AzureAppServiceManage@0
  inputs:
    azureSubscription: 'BizSpark(..)'
    Action: 'Delete Slot'
    WebAppName: 'foo'
    ResourceGroupName: 'Default-WestEurope'
    Slot: 'staging' …
Run Code Online (Sandbox Code Playgroud)

yaml azure azure-devops azure-pipelines

6
推荐指数
2
解决办法
2625
查看次数

我在哪里向单个区域添加行为?

我的问题很简单,但所有的选项都让我感到困惑......

在我的 MEF/Prism 应用程序中,我想将特定行为附加到一个特定区域。doumentation 说,你可以这样做:

IRegion region = regionManager.Region["Region1"];
region.Behaviors.Add("MyBehavior", new MyRegion());
Run Code Online (Sandbox Code Playgroud)

但是我应该把它放在哪里?有没有地方,这应该用引导程序方法完成?目前,我在 shell 的 Loaded-event 中添加了这样的行为:

    /// <summary>
    /// Interaction logic for Shell.xaml
    /// </summary>
    [Export(typeof(Shell))]
    public partial class Shell
    {
        [ImportingConstructor]
        public Shell(IRegionManager regionManager, ElementViewInjectionBehavior elementViewInjectionBehavior)
        {
            InitializeComponent();
            Loaded += (sender, args) =>
                          {
                              IRegion region = regionManager.Regions[RegionNames.ElementViewRegion];
                              region.Behaviors.Add("ElementViewInjection", elementViewInjectionBehavior);
                          };
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是一个很好的解决方案。我宁愿在引导程序中执行此操作,以便在与其他区域行为注册 ( ConfigureDefaultRegionBehaviors())相同的位置执行此操作。

因此,问题是:将行为添加到单个区域的最佳位置在哪里?

prism mef

5
推荐指数
1
解决办法
1747
查看次数

如何从代码隐藏中选择WPF TextBox中的所有文本?

我想TextBox从代码隐藏(不是代码TextBox隐藏,但是一些父控件)设置WPF的焦点,并在收到焦点时TextBoxTextBoxs代码隐藏中选择所有文本.

我这样关注TextBox:

var scope = FocusManager.GetFocusScope(txt);
FocusManager.SetFocusedElement(scope, txt);
Run Code Online (Sandbox Code Playgroud)

TextBoxTextBoxs codebehind 中听这样的事件:

AddHandler(GotFocusEvent, new RoutedEventHandler(SelectAllText), true);
Run Code Online (Sandbox Code Playgroud)

并尝试选择如下文本:

private static void SelectAllText(object sender, RoutedEventArgs e)
    {
        var textBox = e.OriginalSource as TextBox;
        if (textBox != null)
            textBox.SelectAll();
    }
Run Code Online (Sandbox Code Playgroud)

但是文本没有被选中.我怎样才能修改它以便按照我的意愿工作?

wpf textbox selection onfocus

5
推荐指数
1
解决办法
1万
查看次数