小编Tse*_*eng的帖子

将ViewModel绑定到多个窗口

我正在重新编写我的Windows表单项目,该项目为羊剪切事件(不要问,这是新西兰的一项大型运动)从vbnet到wpf c#进行评分,并且遇到了一个我似乎无法克服的问题.

我有两个窗户.一个是您输入内容的源窗口(如当前事件名称),另一个窗口将以闪存方式显示此信息,以便投影到屏幕上(因此将在第二个监视器上)以及其他一些数据在via XML over the network.我将它设置为MVVM,将ViewModel和Model作为单独的项目.

在我的主窗口上,我可以很好地绑定控件,如果我输入一个文本框,它会立即出现在另一个文本框中,如果它绑定到同一个东西.但是,在第二个窗口中,我将控件绑定到同一个窗口,并且它没有更新.

我已经围绕这个问题进行了一个星期的讨论,网上的每个例子都显示了如何在一个窗口上进行操作,我已经工作正常,但是缺少两个窗口示例.

这是我的......

这是在我的ViewModel项目中

namespace SheepViewModel
{
public class SheepViewModel : INotifyPropertyChanged


{
    private string _CurrentEventName;
    static SheepViewModel _details;

    public string CurrentEventName
    {
        get { return _CurrentEventName; }
        set
        {
            _CurrentEventName = value;
            OnPropertyChanged("CurrentEventName");
        }
    }

    public static SheepViewModel GetDetails()
    {
        if (_details == null)
            _details = new SheepViewModel();
        return _details;
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string prop)
    {
        if (PropertyChanged != null)
             PropertyChanged(this, new PropertyChangedEventArgs(prop));
            Console.WriteLine("Test");
            }     
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个主窗口,没有真正的代码,除了一行打开第二个窗口,我们将... …

c# wpf xaml binding mvvm

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

如何在Visual Studio中切换.NET Core项目的目标框架

假设您有一个如下所示的.NET Core项目:

"frameworks": {
    "net40": {},
    "dotnet5.1": {}
}
Run Code Online (Sandbox Code Playgroud)

这是你的C#代码:

public class Foo
{
    public static void Blah()
    {
#if DOTNET5_1
        DoSomething();
#elif NET40
        DoSomethingElse();
#endif
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在Visual Studio中查看.cs文件时,其中一个#if部分将显示为灰色 - DoSomething或者DoSomethingElse.以下是我在笔记本电脑上的显示方式:

在此输入图像描述

是否有可能让VS在目标平台之间"切换上下文",以便您可以查看为特定平台编译的内容?例如,我可能想在实际构建解决方案之前检查每个框架的任何红色波浪线.

任何帮助将不胜感激,谢谢!

.net c# visual-studio visual-studio-2015 asp.net-core

8
推荐指数
2
解决办法
9406
查看次数

如何使用mvvm在ModernWindow中正确加载内容

在我们公司,我们习惯使用WinForms开发应用程序,现在我们决定使用Caliburn.Micro和Modern UI切换到WPF-MVVM.我们想要达到的目标是拥有一个小应用程序: - 1个现代窗口 - 现代窗口内的2个页面的目标是在该页面内有一个按钮,用于将现代窗口导航到带参数的第二个页面.

我一直在努力了解如何解决这个问题,我成功地使用了Window(没有MUI),但是当谈到MUI时,它并没有真正给我我想要的结果.

到目前为止,我所做的一切都是

  1. 创建一个新的MUI项目
  2. 将Caliburn.Micro添加到项目中
  3. 将App.xaml更改为

    <Application x:Class="MuiWithCaliburn01.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:MuiWithCaliburn01">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary>
                    <local:AppBootstrapper x:Key="bootstrapper" />
                    <local:ModernContentLoader x:Key="ModernContentLoader" />
                </ResourceDictionary>
                <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.xaml" />
                <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.Light.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
    
    Run Code Online (Sandbox Code Playgroud)

  4. 创建Bootstrapper类

    
    public class AppBootstrapper : BootstrapperBase
    {
        static AppBootstrapper()
        {
        }
        public AppBootstrapper()
        {
            Initialize();
        }
        protected override void OnStartup(object sender, StartupEventArgs e)
        {
            DisplayRootViewFor();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 创建ModernContentLoader类

    
    public class ModernContentLoader : DefaultContentLoader
    {
        protected override object LoadContent(Uri uri)
        {
            var content = base.LoadContent(uri);
            if …
    Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm caliburn.micro modern-ui

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

在测试项目中使用ASP.NET Core的ConfigurationBuilder

我想在我的功能测试项目中使用IHostingEnvironmentConfigurationBuilder,因此根据环境,功能测试使用不同的配置集运行.我想使用下面的代码:

public IConfigurationRoot ConfigureConfiguration(IHostingEnvironment hostingEnvironment)
{
    var builder = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json")
        .AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", true)
        .AddEnvironmentVariables();
    return builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

我希望有一个appSettings.jsonappSettings.Production.json文件来指出我的功能测试在生产中.这可能吗?如何实现?我需要一个实例IHostingEnvironment.

.net c# asp.net-core-mvc asp.net-core

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

创建App Service订阅EMPTY

为什么这些下拉框是空的? Azure App Service对话框 我已使用我的Microsoft帐户登录.

azure asp.net-core-mvc azure-web-app-service asp.net-core

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

将绝对文件路径转换为相对

我正在尝试从我的ASP.NET核心应用程序的wwwroot文件夹中的images文件夹中提供文件,我已经在Startup类中启用了静态文件访问.

HostingEnvironment服务为我提供了一个WebRootPath属性,为我提供了wwwroot文件夹的绝对路径,但使用此路径在浏览器的控制台中给出了"不允许加载本地资源"错误.

如果我使用localhost+相对路径从我的浏览器访问该文件,我可以获取图像文件,因此没有关于授权的问题.

我现在需要的是能够将该绝对路径转换为我的Web服务器的相对路径.

asp.net-core-mvc asp.net-core asp.net-core-1.0

8
推荐指数
2
解决办法
8947
查看次数

在共享Linux主机上托管ASP.NET Core应用程序

现在已经发布了asp.net核心,因此我们可以在任何平台上开发/部署.net应用程序.

我正在尝试使用asp.net核心并能够在ubantu os(On Virtual Machine)上运行我的应用程序.但我只想在共享的linux托管环境中托管点网核心应用程序,只需上传已发布的文件.

我正在关注Tony的博客,玩核心.

我们需要DNVM,DNU和DNX来运行应用程序,但我们没有终端在共享主机上执行这些命令.

帮我找出解决方案.

c# linux shared-hosting asp.net-core

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

在OSX上使用Visual Studio代码进行调试不使用手动路径

我正在尝试在OSX上调试一个dotnet核心项目并继续得到一个它无法找到所需库的引用错误.

A fatal error was encountered. The library 'libhostpolicy.dylib' required to execute the application was not found in '/Users/Chris/Google Drive/Repos/project/src/project.api/bin/Debug/netcoreapp1.0'.
WARNING: The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use Microsoft.NETCore.App 1.0.0 or newer. This may be expected if the target process did not run .NET code.
The program '/Users/Chris/Google Drive/Repos/project/project.api/src/project.api/bin/Debug/netcoreapp1.0/project.api.dll' has exited with code 131 (0x00000083).
Run Code Online (Sandbox Code Playgroud)

所以我查看了bin目录,注意到netcoreapp1.0下有一个名为osx.10.11-x64的附加目录.

在此输入图像描述

在我的launch.json中如果我手动添加到程序路径一切正常 - 我只是想知道这是否正常,如果运行时可以动态拾取,所以我不必更改我工作的不同机器的程序路径(windows,nix,osx)

这是launch.json的副本

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET …
Run Code Online (Sandbox Code Playgroud)

macos omnisharp visual-studio-code asp.net-core

8
推荐指数
0
解决办法
687
查看次数

具有自引用类型的ASP.NET Core MVC/WEB API不返回json数组

你好WEB API开发者!

当我尝试在MVC6中使用我的WEB API返回数组对象时遇到问题.

在调试控制器上,我获取了两个或更多对象,但结果只发送一个对象的响应.我不知道还有什么办法可以解决这个问题.请帮我!

我的控制器方法:

[HttpGet]
    public IEnumerable<Maquina> Get()
    {
        var maquinas = _cobraAppContext.Maquina
            .Include(m => m.IdMarcaMotorNavigation)
            .Include(m => m.IdModeloNavigation)
            .ToList();
        return maquinas;//Two or more object obtains :(
    }
Run Code Online (Sandbox Code Playgroud)

响应只有一个对象,但我的控制器调试显示多个:

[
  {
    "id": 1,
    "nombre": "M1",
    "idModelo": 3,
    "serie": "123456",
    "idMarcaMotor": 3,
    "serieMotor": "123456789",
    "descripcion": "ejemplo 123",
    "fechaCreacion": "2016-12-06T08:30:51.307",
    "idMarcaMotorNavigation": {
      "id": 3,
      "nombre": "DAEWO",
      "descripcion": "DAEWO",
      "fechaCreacion": "2016-11-29T15:17:33.223",
      "maquina": []
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

邮差

控制器调试

在此输入图像描述

c# asp.net-web-api asp.net-core-mvc

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

如何从Startup.cs中的XML文件中提取配置设置

我有一个startup.cs文件,我想从XML文件而不是appsetings.json文件中提取配置.是否可以使用ASP.NET Core MVC?

asp.net-core-mvc asp.net-core

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