creating-wpf-project-from-scratch
全部标签 我有一个使用MVVM数据绑定(bind)的WPF应用程序。我正在将项目添加到ObservableCollection确实有很多。现在我想知道每次我向集合中添加一个时,它是否会立即触发事件并造成不必要的开销?如果是这样,我能否以某种方式暂时禁用事件通知并在我的代码末尾手动触发一次,这样如果我添加10k个项目,它只会被触发一次,而不是10k次?更新:我试过这门课:usingSystem;usingSystem.Linq;usingSystem.Collections.Specialized;usingSystem.Collections.Generic;namespaceMyProject
我有一个绑定(bind)到字符串的WPFTextBlock。如果该字符串为空,我希望TextBlock以另一种颜色显示警告消息。这在代码中很容易做到,我想知道是否有一个优雅的WPF纯XAML解决方案?我研究了StyleTriggers,但语法对我来说不是很自然。谢谢! 最佳答案 向Daniel's(slightlyshort)answer添加一些细节因为一些需要的DataTrigger东西并不是很简单(比如{x:Null}):顺便说一句:这完全是凭内存做的,没有在VS或Blend中检查,所以如果其中有错误,请原谅。但是,您应该能够自
在WPF应用程序中,我有一个从TextBox派生的控件,如下所示:publicclassSelectableTextBlock:TextBox{protectedoverridevoidOnKeyDown(KeyEventArgse){base.OnKeyDown(e);e.Handled=false;}}在TextBox中输入空格或按下Backspace时不会调用OnKeyDown方法,但会为其他输入触发,包括正常的可打印字符(例如“a”)和修改键(例如)。我在IsReadOnly设置为true的情况下使用此控件,这样我就可以显示可选择的、不可编辑的文本。WPFToolkit的Dat
我有一个用WinForms制作的小程序,现在我想用WPF再次制作它。我是WPF的新手,我读到无论您可以使用XAML做什么,没有它也可以做,这意味着仅使用代码。当然,您在使用Winforms时没有任何XAML。我可以将用于winforms应用程序的相同代码用于WPF应用程序并获得相同的结果吗?还是我需要创建和编辑XAML?使用或不使用XAML的优点是什么?此外,考虑到过去使用Winforms的经验,我是否应该以某种方式改变我对适用于Winforms但不适用于WPF的设计和实现的思考方式? 最佳答案 不,您不能在WPF中重用winfor
我需要根据数据网格中的参数和值隐藏数据网格中的行。我想做这样的事情;foreach(System.Data.DataRowViewdrinmyDataGrid.ItemsSource){//LogictodetermineifRowshouldbehiddenif(hideRow=="Yes"){//Hiderowcode}}我只是不知道如何实际隐藏该行。请注意,我不想从数据网格或项目源中删除行。 最佳答案 如果hideRow不是表的字段(即不是DataGridRow中的列):并用您的逻辑实现Converter。绑定(bind)变量
我有一个带有选项卡控件的主窗口,其中包含2个tabItem:我目前有1个ViewModel为Tab1和Tab2提供服务。此ViewModel因SOC模糊而变得有点臃肿。我想将逻辑拆分为2个View模型:ViewModel1和ViewModel2。我的理解是,您可以将主窗口DataContext设置为包含ViewModel集合的BaseViewModel,然后您可以将每个TabItem声明为不同的ViewModel。我看到的这些基本ViewModel的示例公开了一个ObservableCOllection,如下所示:privateObservableCollection_viewMode
我正在以编程方式创建椭圆形状,但我找不到任何指定其位置的属性。Lines具有X1、Y1、X2、Y2,但在椭圆形状上没有中心、位置、X、Y等。我该怎么做? 最佳答案 将形状放在屏幕上的任意位置可能应该在Canvas面板中完成(请参阅@phoog的回复)。但是,如果您将其放置在Grid或其他面板中,则始终可以修改Margin属性以将其放置在您想要的位置。如果您想通过指定中心点而不是椭圆的左上角来这样做,您可以这样做:EllipseCreateEllipse(doublewidth,doubleheight,doubledesiredCe
我已经为数据库连接创建了一个用户控件,用户可以在其中输入用户名和密码进行连接。此UserControl在MainWindow.xaml中现在,在我的用户控件后面的代码中,我创建了一个MSSQL连接。如果登录成功,我想引发一个自定义事件以在MainWindow中公开。例如在MyUserControl.xaml.cs中try{using(SqlConnectionsqlConn=newSqlConnection(connection)){sqlConn.Open();MessageBox.Show("ConnessioneRiuscita!","Connessionea"+TextIP.T
在我的WPFMVVM项目中,我尽量避免在View中隐藏代码。但是我有一些非常特定于View的东西。例如,当控件获得焦点时,我希望突出显示全文(即使用户单击文本框)。在这里,我可以选择在View模型中处理这个问题(然后需要了解View,我想避免这一点)。我还有一些其他类似的代码,当用户在键盘上向左或向右按下时(他们只对View进行更改,而不是模型或View模型)我又在想这些的最佳位置是在View的代码后面。所以我问的是代码是否只影响View(例如光标移动、选择文本框中的所有文本等...,而不是模型或View模型,是否可以将其放入代码中在后面,而不是在其他地方。想知道这里的最佳实践是什
简短的问题:我的资源中有一个字符串:“这是我的测试字符串{0}\n\nTest”我试图在我的消息框中显示这个字符串:MessageBox.Show(String.Format(Properties.Resources.About,Constants.VERSION),Properties.Resources.About_Title,MessageBoxButton.OK,MessageBoxImage.Information);但是我没有换行。\n仍然显示为字符,而不是新行。我也尝试使用类似mystring.Replace("\n",Environment.NewLine)的解决方法,