点击后,我Button关闭了我的窗口:
<Button x:Name="buttonOk" IsCancel="True">Ok</Button>
Run Code Online (Sandbox Code Playgroud)
这很好,直到我添加Command到Buttonie
<Button x:Name="buttonOk"
Command="{Binding SaveCommand}"
IsCancel="True">Ok</Button>
Run Code Online (Sandbox Code Playgroud)
现在它不会因为我正在处理它而关闭Command.我可以通过EventHandler输入和调用this.Close()ie 来解决这个问题
<Button x:Name="buttonOk"
Click="closeWindow"
Command="{Binding SaveCommand}"
IsCancel="True">Ok</Button>
Run Code Online (Sandbox Code Playgroud)
但现在我的代码背后有代码,即方法SaveCommand.我使用的是MVVM模式,SaveCommand是我代码中唯一的代码.
我怎么能以不同的方式做到这一点,以免背后使用代码?
如何在一天中的特定时间(例如16:00)启动后台线程?
因此,当应用程序启动时,线程将一直等到那个时间.但如果应用程序在该时间之后启动,那么该线程将立即运行
ThreadPool.QueueUserWorkItem(MethodtoRunAt1600);
我用谷歌搜索了它仍然无法使它工作
我有一个WPF应用程序,并希望从Main.xaml开始,它位于不同的程序集中.两个组件都在同一位置.
我怎样才能做到这一点?我从XAML中取出了StartupUri并尝试了这些以及一些细微的变化:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
StartupUri = new Uri("/CompanyName.VisualStudio.UI;CompanyName/VisualStudio/UI/DatabaseManager/Main.xaml", UriKind.Relative);
//StartupUri = new Uri(@"pack://application:,,,/ CompanyName.VisualStudio.UI;CompanyName/VisualStudio/UI/DatabaseManager/Main.xaml");
}
Run Code Online (Sandbox Code Playgroud)
程序集的名称是"CompanyName.VisualStudio.UI",名称空间是"CompanyName/VisualStudio/UI/DatabaseManager/Main.xaml"
有任何想法吗?
在我的选项卡SelectionChanged事件中(这是正确的事件,我找不到选项卡更改事件?),如何访问新选项卡?
此外,在正常代码的此事件之外,如何访问当前选定的选项卡?
TabControl.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(TabControl_SelectionChanged);
void TabControl_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
//How so access my currently selected tab???
}
Run Code Online (Sandbox Code Playgroud) 如果我不将我的应用程序拆分成不同的模块(否则我会认为Prism将会成为可行的方法)我应该使用Prism吗?
我知道Prism提供了一个方便的实现ICommand(我可以在代码页中自己完成)并给我们IEventAggregator但是所有Bootstrapper,Shell,ModuleCatalog的东西真的有帮助吗?
为什么不使用MVVM模式(没有Prism)来分离你的顾虑,这样你的应用程序才是可测试的,鲍勃是你的叔叔!
我怎样才能做到这一点:
select *
from tableName
where SESSION_START_DATE_TIME > To_Date ('12-Jan-2012 16:00', 'DD-MON-YYYY hh24:mi' )
Run Code Online (Sandbox Code Playgroud)
SESSION_START_DATE_TIME的格式为'12/01/2012 13:16:32.000'
我试过了 where To_Date (SESSION_START_DATE_TIME, 'DD-MON-YYYY hh24:mi') > To_Date ('12-Jan-2012 16:00', 'DD-MON-YYYY hh24:mi' )
但无论我尝试什么,我都会得到错误:
SQL command not properly formed
在我的XAML中我有这个:
<UserControl.CommandBindings>
<CommandBinding Command="Help"
CanExecute="HelpCanExecute"
Executed="HelpExecuted" />
</UserControl.CommandBindings>
<MenuItem Header="Help" Command="Help" />
Run Code Online (Sandbox Code Playgroud)
这很好用.因此,当我单击上下文菜单时,将调用HelpExecuted().
现在我想再做同样的事情,除了使用自定义命令而不是帮助命令.所以我做的是:
public RoutedCommand MyCustomCommand = new RoutedCommand();
Run Code Online (Sandbox Code Playgroud)
并将我的XAML更改为:
<UserControl.CommandBindings>
<CommandBinding Command="MyCustomCommand"
CanExecute="HelpCanExecute"
Executed="HelpExecuted" />
</UserControl.CommandBindings>
<MenuItem Header="Help" Command="MyCustomCommand" />
Run Code Online (Sandbox Code Playgroud)
但我得到错误:无法将属性'Command'中的字符串'MyCustomCommand'转换为'System.Windows.Input.ICommand'类型的对象.CommandConverter无法从System.String转换.
我在这里错过了什么?请注意我想在XAML中完成所有操作,即不想使用CommandBindings.Add(new CommandBinding(MyCustomCommand ....)
我正在尝试更改我的WPF应用在单击事件中使用的语言,但它不会更改.
private void menuItemGerman_Click(object sender, RoutedEventArgs e)
{
Settings.Default.Culture = "de-DE";
Thread.CurrentThread.CurrentCulture = new CultureInfo(Settings.Default.Culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Settings.Default.Culture);
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有一些代码如下:
public void Start()
{
var watch = new Stopwatch();
watch.Start();
Task.Factory.StartNew(MyMethod1);
Task.Factory.StartNew(MyMethod2);
watch.Stop();
Log(watch.ElapsedMilliseconds);
Task.Factory.StartNew(MyMethod3);
}
Run Code Online (Sandbox Code Playgroud)
因为MyMethod1和MyMethod2被称为异步watch.Stop()在错误的时间被调用.我如何确保在MyMethod1和MyMethod2完成后调用和记录.Stop确保MyMethod3不必等待.
我想在我的Start()方法中保留所有秒表功能,而不是记录我的3种方法中的任何一种,即MyMethod1,MyMethod2和MyMethod3
我写了一个函数,将一个类的属性复制到另一个类,所以制作一个对象的副本.
所以像
MyObject myObject = myOtherObject.MyCustomCopy(myObject)
Run Code Online (Sandbox Code Playgroud)
其中myObject和myOtherObject属于同一类型.我这样做是基本做的
myObject.prop1 = myOtherObject.prop1
myObject.prop2 = myOtherObject.prop2
myObject.prop3 = myOtherObject.prop3
return myObject
Run Code Online (Sandbox Code Playgroud)
我很确定在过去我使用.NET对象自动完成这个,通过反思我猜,但不记得了......或者我想象这样的方法存在?
是的我知道自动映射器,但我确信(现在不是那么多)有一个.NET对象可以完成这项工作.也许不吧!