我遇到了一些关于我的C#/ XAML Metro-UI应用程序的视觉外观的问题.我想自定义默认模板.对于其他类型的应用程序,我可以从MSDN文章中获取默认样式和控件.例如:
在哪里可以找到类似于Metro-UI默认样式和模板的内容?
我知道可以在Expression Blend中提取模板或样式.但是我在下一个帖子中描述了我的Blend for Visual Studio 11的问题.
我创建了空白的 C#/XAML Windows 8 应用程序。添加简单的 XAML 代码:
<Page
x:Class="Blank.MainPage"
IsTabStop="false"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel
Margin="0,150"
HorizontalAlignment="Center">
<TextBlock
x:Name="xTitle"
Text="{Binding Title, Mode=TwoWay}"/>
<Button Content="Click me!" Click="OnClick" />
</StackPanel>
</Grid>
</Page>
Run Code Online (Sandbox Code Playgroud)
以及 C# 部分的简单代码:
public sealed partial class MainPage
{
private readonly ViewModel m_viewModel;
public MainPage()
{
InitializeComponent();
m_viewModel = new ViewModel
{
Title = "Test1"
};
DataContext = m_viewModel;
}
private void OnClick(object sender, RoutedEventArgs e)
{
m_viewModel.Title = "Test2";
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想实现ViewModel. 我有两种方法:
c# inotifypropertychanged dependencyobject microsoft-metro windows-8
假设我的 Step Function 的一部分如下所示:
"ChoiceStateX": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.value",
"NumericEquals": 0,
"Next": "ValueIsZero"
}
],
"Default": "DefaultState"
},
"ValueIsZero": {
"Type" : "Task",
"Resource": "arn:aws:lambda:******:function:Zero",
"Next": "NextState"
},
"DefaultState": {
"Type" : "Task",
"Resource": "arn:aws:lambda:******:function:NotZero",
"Next": "NextState"
}
Run Code Online (Sandbox Code Playgroud)
假设该状态的输入是:
{
"value": 0,
"output1": object1,
"output2": object2,
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我必须传递output1给ValueIsZerostateoutput2和DefaultState. 我知道可以改变和InputPath状态。但这种方式对我来说是不可接受的,因为我也从其他一些州打电话给这些州。ValueIsZeroDefaultState
我尝试ChoiceStateX像下面这样修改状态:
"ChoiceStateX": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.value",
"NumericEquals": 0,
"OutputPath": …Run Code Online (Sandbox Code Playgroud) 我想部署我的ASP.NET MVC站点并具有以下脚本.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\MyProjName\MyProjName.csproj"/>
<PropertyGroup>
<NewInstallDir>C:\DeployFolder\</NewInstallDir>
<BinDir>$(NewInstallDir)bin\</BinDir>
</PropertyGroup>
<Target Name="Build">
<MSBuild Projects="..\MySlnName.sln"
Properties="Configuration=Release;Platform=Any CPU;OutputPath=$(BinDir)" />
<Copy SourceFiles="@(Content->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')"
DestinationFiles="@(Content->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" />
<Copy SourceFiles="@(None->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')"
DestinationFiles="@(None->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" />
<MakeDir Directories="@(Folder->'$(NewInstallDir)%(RelativeDir)')" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
大意.
我将二进制文件复制到C:\ DeployFolder(从源代码中获取文件夹的结构).我将我的dll构建到C:\ DeployFolder\Bin(我在sources文件夹中没有这个文件夹所以我需要单独复制它).
我运行我的脚本 - 所有工作而不是复制DLL到OutputPath.相同的脚本适用于其他asp.net mvc项目.我不知道在这种情况下有什么问题.
我用解决方法完成了这个问题,但我想知道这个脚本有什么问题.
我从F#开始,有些代码结构令我惊讶。例如:
我有下一个代码:
let mutable s = 10
s <- 1 + s
printf "%i" s
Run Code Online (Sandbox Code Playgroud)
从数学的角度来看,一切都是清楚的。我将“ s”标记为可变的,并将新值分配给“ s”。结果是11。
让我尝试代码的其他部分:
let mutable s = 10
s = 1 + s
printf "%i" s
Run Code Online (Sandbox Code Playgroud)
此代码已工作。但是我s = 1 + s从数学角度看这有点奇怪。执行结果为10。
我的问题是,上一个样本中发生了什么?为什么我没有收到错误消息?是s = 1 + s不理?为什么?我的输出没有任何错误。
我有一个Web应用程序(ASP .Net Core 1.1 MVC),它具有一些基本的CRUD操作。该Web应用程序使用Web API进行所有操作。
该Web应用程序具有一些页面供编辑,其中包含基本文本框和下拉列表。一些下拉列表包含静态信息-例如,可能存在具有以下值的查找表:
Web API公开了一个端点来检索这些值。但是,我显然不想每次用户导航到“编辑”页面时都调用此函数。由于这是永远不变的静态数据,因此我想在Web应用程序启动时从API读取一次此查询数据。问题是我不确定执行此操作的最佳位置。我应该将Main()放在Program.cs中,还是放在Startup.cs中的Startup()中?还是应该使用DI来完成(以某种方式...不确定如何发生)。这种情况下有一些最佳做法吗?
然后下一个问题是我应该在哪里存储这些数据?我可以只创建一个包含所有查找表的静态全局变量吗?这是适用于所有用户/会话的数据,所以我认为基本的全局键/值对列表会很好吗?我可以从各种控制器中读取此信息,以在视图中填充下拉列表?
谢谢...只是想以正确的方式做。任何提示将非常感谢。