我正在开发一个执行某些文件操作的应用程序,我希望能够通过控制台或UI(我选择WPF)进行操作.
我非常想说:(假的)
if ( Environment.GetCommandLineArgs().Length > 0 )
{
//Do not Open WPF UI, Instead do manipulate based
//on the arguments passed in
}
else
{
//Open the WPF UI
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了几种以编程方式启动WPF窗口/应用程序的不同方法:
Application app = new Application ();
app.Run(new Window1());
Run Code Online (Sandbox Code Playgroud)
但我不完全确定我想将其插入控制台应用程序.
有没有人有关于如何实现这一目标的最佳实践或建议?主要处理功能在我创建的Helper类中.所以基本上我要么想要一个静态启动方法(比如标准的Console Application创建),要么根据传入的参数来访问Helper类.
我正在使用Twitter Bootstrap为我带走了很多CSS工作.我想将他们的面板用于用户的某种"发布".我希望标题部分包含标题右侧的编辑/删除超链接,而标题本身则在左侧对齐.
我试过这个没有成功:
<div class="row">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">@vModel.Title <span class="text-right">Hey</span></h3>
</div>
<div class="panel-body">
@vModel.Blog
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
标题应该在左边对齐(默认情况下是这样)但我希望在右侧显示附加文本"嘿".
我很好奇是否可以确定大会是否引用了某个特定的类.我目前正在使用Reflection来加载Assemblies,然后我确定正在加载的程序集中引用了哪些程序集:
foreach (var vReferencedAssembly in vSomeAssembly.GetReferencedAssemblies())
Run Code Online (Sandbox Code Playgroud)
现在我知道引用了哪些程序集,我想深入研究那些vReferencedAssembly,并确定是否会出现这样的情况:
File.Create(vSomeFile);
Run Code Online (Sandbox Code Playgroud)
用简单的英语,我不想从提供给我的列表中加载一个可能包含我认为是威胁的程序集.所以我可能想要阻止可能操纵文件的东西等等.
所以我刚开始开发C#WinForm应用程序,我一直在研究的每个项目似乎都更大,需要更多的用户功能.如果我将所有功能添加到一个表单中,显然它可能会很快失控.我的上一个项目我将功能划分为单独的表单,每当有人说要执行"Feature1"时,我会实例化Feature1表单并将其显示为主表单作为其所有者的对话框(因此他们无法单击它).
我只是想知道其他什么方法可以保持代码在Forms中的组织.如果您被迫在单个表单上拥有大量的功能/功能,那么有一种很好的方法来保持项目的有序性吗?我只是讨厌拥有数百/数千行的代码文件.
答案可能只是在设计中,尝试预先设计UI,以便您可以使用多种形式?
我遇到的另一个例子.我创建了一个Tab Control,大约有5个标签.这5个标签有很多功能,都存储在同一个CS文件中.我还有其他选择吗?创建一个新的自定义TabControl类,其中包含该选项卡的特定功能?
我不介意阅读,所以如果有好的文章,请随时链接他们!
所以我在学习MVVM时偶然发现了一个问题.我有一个包含TextBlocks的TreeView,我想在双击TreeView中的任何TextBlocks时执行操作.我开始学习有关行为的知识,我有一个关于如何实现行为的很好的例子,但该示例根本没有将行为连接到ViewModel.换句话说,如果我双击TextBlock,我有使用它的Behavior类,但我没有任何ViewModel来执行任何操作.
有人可以花一点时间解释这些如何搭配?我正在审阅这篇文章:http: //msdn.microsoft.com/en-us/library/gg430869(v = pandp.40).aspx 但我似乎没有抓住我在寻找的东西.
我在C#中创建了一个COM对象,后来被VBScript使用.为了使VBScript能够实例化对象,必须对其进行注册.以前我使用随任何.NET Framework提供的RegAsm工具手动注册对象.
但是,我现在正在创建一个安装程序,所以我可以在不同的机器上安装此对象,当我使用InstallShield 2012 Spring Express时,它警告我dll不是自行注册的.
如何让我的DLL自我注册?我找到了使用C#中的Process对象调用RegAsm的人员的指南和示例,但我的对象不是可执行文件.
我一直在使用WPF中的MVVM,并且对于人们有一个快速的问题.现在我有:
我在UserControl中公开了对Grid Properties的访问,但是User Control不知道什么也不与MainWindow交互.
我还有一个我调用ViewModel的类,它为我操作MainWindow/UserControl.我的理解是ViewModel知道View(MainWindow/UserControl)以及如何操作它,而View通常对ViewModel一无所知.
如果我有这个权利,这是我的问题:
当我按下MainWindow MenuBar上的按钮时,我想执行操作.现在,这些操作必然会在MainWindow中说一个EventHandler,并且EventHandler实例化ViewModel并调用方法进行处理,如下所示:
private void RunQueryMenuItemAdvClick(object pSender, RoutedEventArgs pRoutedEventArgs)
{
ViewModel vViewModel = new ViewModel(this);
vViewModel.RunQuery();
}
Run Code Online (Sandbox Code Playgroud)View Model看起来像这样:
public class ViewModel
{
private DataProvider fDataProvider;
private MainWindow fMainWindow;
private BackgroundWorker fQueryWorker = new BackgroundWorker();
public ViewModel(MainWindow pMainWindow)
{
fDataProvider = new DataProvider();
fMainWindow = pMainWindow;
//Query Worker
fQueryWorker.DoWork += QueryWorkerDoWork;
fQueryWorker.RunWorkerCompleted += QueryWorkerCompleted;
}
private void QueryWorkerCompleted(object pSender, RunWorkerCompletedEventArgs pRunWorkerCompletedEventArgs)
{
fMainWindow.UserControl_Data.busyIndicator1.IsBusy = false;
fMainWindow.UserControl_Data.DataToPresent = pRunWorkerCompletedEventArgs.Result;
}
private void QueryWorkerDoWork(object pSender, …Run Code Online (Sandbox Code Playgroud) c# ×5
wpf ×3
mvvm ×2
behavior ×1
binding ×1
com ×1
css ×1
html ×1
organization ×1
reflection ×1
registration ×1
registry ×1
viewmodel ×1
winforms ×1