草庐IT

creating-wpf-project-from-scratch

全部标签

c# - 在 WPF 中使用计时器刷新 UI(使用 BackgroundWorker?)

我们在WPF中有一个应用程序,它通过ObservableCollection显示数据。5分钟后,我想刷新数据。我想我可以为它的Elapsed事件使用System.Timers.Timer对象,然后调用BackgroundWorker来调用开始工作。该方法在ViewModel类上。但是线程好像有问题。所以我尝试使用Dispatcher,但还是一样。这是我的(简化且未优化的)代码://////Initializesanewinstanceoftheclass.///publicApplicationController(){CreateDefaultTabs();Timertimer=ne

c# - 在 'object' 上找不到 WPF/XAML 属性

我在一个新的WPF应用程序中使用BackgroundWorker,我需要在它在后台工作时报告进度/更新UI。我在WIndowsForms应用程序中已经这样做了很长时间。我刚刚为WPF重写了这一切,这让我有点头疼。它在运行时不断抛出以下错误:System.Windows.DataError:40:BindingExpressionpatherror:'Sender'propertynotfoundon'object'''Char'(HashCode=5046349)'.BindingExpression:Path=Sender;DataItem='Char'(HashCode=50463

c# - 为什么要使用 Create 方法而不是使用 "new"?

有什么优点,什么时候适合使用静态构造函数?publicclassMyClass{protectedMyClass(){}publicstaticMyClassCreate(){returnnewMyClass();}}然后通过创建类的实例MyClassmyClass=MyClass.Create();与仅拥有公共(public)构造函数并使用创建对象相反MyClassmyClass=newMyClass();如果Create方法返回类实现的接口(interface)实例,我可以看到第一种方法很有用……它将强制调用者创建接口(interface)实例而不是特定类型。

c# - 在 WPF DataGrid 中转换和使用 DataTable?

在普通的WinForm应用程序中,您可以这样做:DataTabledataTable=newDataTable();dataTable=dataGridRecords.DataSource;但是如何使用WPF数据网格做到这一点?dataTable=dataGridRecords.ItemsSource;也不行。 最佳答案 在WPF中你不需要这样做DataGrid.ItemsSource=DataTable;相反,你这样做DataGrid.ItemsSource=DataTable.AsDataView();为了取回DataTable

c# - WPF Tab 键导航

我们有一个基于WPF.NET4.0C#的应用程序。我们从XML定义(不是XAML)构建了我们的用户界面,但在下面我们使用WPF来呈现UI。即在运行时,我们根据XML定义创建WPFUI。标签导航有问题。我们为文本和组合框控件设置了TabStop、TabIndex。但是选项卡导航不起作用。如何使选项卡导航适用于此布局? 最佳答案 WPF将整个UI树视为单个Tab范围。它并没有像您期望的那样被分解成更小的区域。这包括UserControls中的控件。例如,如果你有MyUserControl看起来像默认的Tab循环是TextBox1、Tex

c# - 如何在后面的代码中读取 WPF 发布版本号

我想在启动窗口中读取和显示WPF应用程序发布版本号,在发布选项卡的项目属性中有发布版本,我如何获取它并在WPF窗口中显示它。提前致谢 最佳答案 使用Assembly.GetExecutingAssembly()访问程序集版本并在UI中显示Assembly.GetExecutingAssembly().GetName().Version.ToString(); 关于c#-如何在后面的代码中读取WPF发布版本号,我们在StackOverflow上找到一个类似的问题:

c# - ApplicationUserManager.Create 在每个请求上调用

我正在使用asp.netmvc5与外部供应商owin提供(facebook,twitter)ApplicationUserManager.Create在每次请求时被调用。那里有很多登录用户不必要的东西(密码验证器配置或短信和电子邮件服务配置....)varmanager=newApplicationUserManager(newUserStore(context.Get()));//Configurevalidationlogicforusernamesmanager.UserValidator=newUserValidator(manager){AllowOnlyAlphanumer

c# - WPF Designer DataTemplate.DataType 不能是类型对象

我有一个TreeView,我绑定(bind)了一些自定义View模型。View模型位于ObservableCollection中并继承ViewModelBase,后者继承INotifyPropertyChanged。它编译并运行良好,但在设计器中出现错误:"DataTemplate.DataTypecannotbetypeobjectParametername:value"我的XAML是:属性窗口也显示它是一个对象,但我不知道为什么:有什么想法吗? 最佳答案 我认为它希望您使用接口(interface)类型而不是类类型。因此,如果您

c# - WPF 和触摸 - 焦点问题

我有一个WPF.NET4.6应用程序在Windows8.1平板电脑上运行,最近几天我一直在努力使我的应用touch友好,使其按预期工作。我的主要问题与焦点相关,这些问题影响了我应用程序中的多个控件。例如:文本框:有时需要双击或三次触摸才能获得输入焦点,它们会进入鼠标悬停状态但插入符号不存在;ComboBoxes:需要几次触摸才能打开它,一旦触摸一个项目以选择它,组合就会保持打开状态,并突出显示新选择的项目;按钮:点击几下即可运行连接的命令并保持鼠标悬停状态;键盘支持在寻找解决方案时,我尝试了几种方法,但每种方法都有其缺点:移除整个应用程序的平板电脑支持(takenfromhere)。这

c# - WPF 绑定(bind)顺序如何确保一个属性在另一个属性之前绑定(bind)

我遇到的问题是,当我在ListView的数据模板中使用此控件时,绑定(bind)发生在设置Mode属性之前。如何确保模式始终在值绑定(bind)之前设置? 最佳答案 你可以做的是延迟绑定(bind),所以你可以(几乎)确定模式值设置到那时。.net4.5中有延迟绑定(bind)属性。这是一篇关于如何在.net4.0中模拟它的文章DelaypropertyonBindingfrom.Net4.5in.Net4.0我个人会在viewModel(MVVM)中实现它,在这种情况下这类问题很容易解决。创建两个属性Mode和Something。