如何将键盘输入命令绑定到主窗口?
我对WPF绑定是相对较新的,并且难以绑定ICommand实现的类,该类正在检测窗口中的用户键盘输入吗?首先,我认为我需要将其绑定到XAML上的窗口,但是看来窗口没有Command. . 这是我的ViewModel类 public class NoteBoxViewModel { public MusicalNotation MusicalNotation { get; set; } public ICommand KeyboardHotkeyCommand { get; private set; } public bool IsSelected { get; set; } public NoteBoxViewModel() { MusicalNotation = new MusicalNotation(); KeyboardHotkeyCommand = new KeyboardHotkeyCommand
0 2024-04-21
编程技术问答社区
WPF MVVM和视图继承
我有大约十几个不同的视图,除了它们绑定到的属性的名称外,它们几乎是相同的.例如,以下各节是两个不同的视图:
0 2024-04-21
编程技术问答社区
视图模型的独立项目,以 "执行 "MVVM:我如何打开对话框?
在遵守MVVM模式的同时,打开对话似乎是常规问题之一(在这里和其他地方).我知道有一些像MVVM Light这样的框架对这个问题有答案,但是我目前正在从事一个很小的个人项目,我尝试自己做大多数事情来学习目的. 要"强迫"自己注意参考文献,我决定从UI项目中提取视图模型,然后将它们放入单独的组件中. UI项目引用UI.ViewModels,但不相反.这导致我在打开(模式)对话框窗口时遇到问题. 许多人似乎正在使用DialogService,该>按照以下方式进行操作: internal class DialogService : IDialogService { public bool? OpenDialog(ViewModelBase vm) { Window window = new Window(); window.Content = vm; return window.ShowDialog(); } } 可以使用DataTem
0 2024-04-21
编程技术问答社区
如何为WPF数据表格中的特定列设置StringFormat,这些值是通过ItemsSource方法填充的。
我有一个WPF datagrid,其值是通过itempssource方法填充的. 我将如何做类似于下面的代码的事情,以便它的格式化得当?另外,是否可以简单地从源表中携带StringFormat? 通过此代码生成表: 解决方案 您要做的是使用AutogeneratingColumn private void datagrid_AutoGeneratingColumn(obje
0 2024-04-21
编程技术问答社区
Visual Studio中缺少Nuget包
我一直在使用Xamarin Studio,当我从 mvvmcross "> mvvmcross .它完美地编译和部署了设备. 但是,当我在Visual Studio中打开项目时,由于某些原因,有很多丢失的包裹.有一种处理方法吗?我在Visual Studio 2013中使用Nuget 2.8 当我按照以下方式打开Nuget时,有一个按钮可以还原丢失的软件包.我单击了. 然后,它试图下载缺失的软件包,然后意识到存在以下依赖项: 然后,我试图按以下方式手动下载依赖项,但它表明包裹已经下载,但我仍在解决方案中看到丢失的软件包,没有任何影响. 因此,我遇到数百个错误,如下所示: 当我查看丢失的软件包的属性时,我认为如下 解决方案 您应该在Visual Studio中更新Nuget软件包管理器扩展名,然后尝试再次恢复软件包. 还原错误MvvmCross.Binding already has a dependency defined for Mvv
0 2024-04-21
编程技术问答社区
在silverlight中从obsablecollection中删除多个项目
如何从Silverlight中的ObservableCollection中删除多个项目.在我的项目中,我有一个datagrid填充了多个项目.在每行还包含一个复选框中.如果我选​​择复选框,然后单击删除按钮,请选择多个一行,我想从集合中删除所有项目. public void delete(object parameter) { foreach (var x in Book) { if (x.Ischeck == true) { Book.Remove(x); } } } 它会导致错误.不会更改ObservableCollection 解决方案 您可以使用下面提到的代码段: foreach (var x in Book.ToList()) { if (x.I
0 2024-04-21
编程技术问答社区
如何将MaterialDesignXamlToolkit纳入WPF类库?
我正在尝试在我的WPF类库中使用Materialldesignxamltoolkit(.NET Framework).我正在关注他们的官方快速启动tutorial ">没有app.xaml,我必须进行一些调整.看来,某个步骤是错误的,但我不知道哪一个. 1)我使用nuget安装了Materialldesignxamltoolkit. 2)我使用以下代码创建了ResourceDictionary:(我指定了密钥,因为如果没有,则存在错误)
0 2024-04-21
编程技术问答社区
关于Josh Smith'的MVVM示例应用程序的EventHandler问题
以下代码来自Josh Smith的MVVM样本: /// /// Raised when this workspace should be removed from the UI. /// public event EventHandler RequestClose; void OnRequestClose() { //if (RequestClose != null) // RequestClose(this, EventArgs.Empty); EventHandler handler = this.RequestClose; if (handler != null) handler(this, EventArgs.Empty); } 评论的行是我的补充.我的问题是,评论的线路会做与未注册的行相同的事情吗?那么,为什么要创建另一个EventHandler参考?还是我在
0 2024-04-21
编程技术问答社区
WPF TabControl与ContentControl
我已经进行了很多搜索,因此找不到解决我的问题的答案. 我想将TabControl与MVVM一起使用.这是我将TabControl添加到mainwindow.xaml 的方式
0 2024-04-21
编程技术问答社区
通过数据库使用ViewModel填充DataGrid
基本上,我有一个正在处理的4个文件: DBDisplay.xaml DBDisplay.xaml.cs DBDisplayViewModel.cs DBConn.cs 在我的ViewModel中,我试图从.XAML文件填充以下数据级: 使用以下代码: public class DBDisplayViewModel { public ICollectionView Users { get; set; } DBConn dbCon; // the connection object DataSet dataSet; DataRow dataRow; private void Load() { string connectionString = Properties.Settings.
0 2024-04-21
编程技术问答社区
使用MEF时,Type.GetType返回null
我目前正在将MEF用于导入插件的项目,因为插件用wpf编写,它们每个都有视图和视图模式.该插件了解ViewModel,但主Shell UI将构造视图并使用配置类型模式的惯例绑定ViewModel. 我使用了您的build-inow-mvvm-framework示例中的一些代码来进行自动查看发现: [ImportMany(typeof(IPlugin))] public IEnumerable Plugins { get; set; } var viewTypeName = this.Plugins.First().ViewModel.GetType().AssemblyQualifiedName.Replace("Model", string.Empty); var viewType = Type.GetType(viewTypeName,true); 目前,代码仅获取第一个插件,并从名称中取出Model,返回视图名称并获取
0 2024-04-21
编程技术问答社区
在WPF中用MVVM将窗口句柄传递给视图模型
我正在使用一个需要窗口句柄的外部库.我的应用程序体系结构是MVVM,但是外部库并不完全适合此体系结构.我认为,视图模型是调用需要窗口句柄的初始化功能的最合适的地方.如何从视图到视图模型获取窗口句柄? 解决方案 通常,您的视图模型不应该了解视图的实现详细信息(例如它的HWND).但是,正如您的问题所指出的那样,您正在使用的外部库需要您初始化它,并且只能在一个地方进行.假设您的视图模型是最合适的地方(甚至可能属于模型),则可以做以下操作. 一旦所有部分都可以,此实现就可以为您的视图模型提供窗口句柄.请注意,您在中提供的视图模型实现您以前的问题需要在视图模型的构造函数中进行HWND.您将不得不更改视图模型,以便初始化通过明确称为方法或属性进行.在下面的代码中,我假设您的视图模型中有一个称为OnWindowHandleAvailable的方法.您当然可以称呼该方法Initialize,也可以在您明确设置的视图模型上放置Handle属性. public partial clas
0 2024-04-21
编程技术问答社区
avaloniaui-访问ViewModel从代码背后
我正在尝试将旧的WPF应用程序移植到Avalonia UI(反应性MVVM),从而学习了一些Avalonia.在我的旧应用中,我使用了一个模式,其中我在视图的代码范围内使用了事件的代码(主要是按钮点击,下拉列表等).因此,就像一个简化的示例一样,该模式在我的WPF应用中就是这样(您可以跳过此部分,因为它只是一个基本的WPF示例,显示了我的模式): 我的视图-Mainwindow.xaml:
0 2024-04-21
编程技术问答社区
MVVM WPF中的ICommand
我正在看这个MVVM的东西,我正在面临问题. 情况很简单. 我在我的index.xaml页面中有以下代码 和我的index.xaml.cs ... initizecomponent(); base.datacontext = new MovieViewModel(ent.movi​​es.tolist()); .... 这是我的Move
0 2024-04-21
编程技术问答社区
在WPF的ContentControl中托管ViewModels
我有一个传统的表单布局,顶部有一个菜单栏,底部的状态栏.当用户选择菜单项时,介于两者之间的空间(表单的整个客户端区域)将被用户控件替换 - 想想可以托管多种类型文档的SDI应用程序. 如果您知道一种更好的方法,请鸣叫.目前,我试图用ContentControl使用非常简单的版本来使用它,但是当我无法让它更新屏幕时其DataContext已设置. 这是ViewModela的非常简单的代码. ViewModelB是相同的,除了BS. namespace Dynamic_ContentControl { public class ViewModelA: ViewModelBase { public ViewModelA() { DisplayName = "This is A"; } } } 主窗口非常简单.它基本上声明了一个属性以保存托管控制的视图模型,并公开了两个命令来分配
0 2024-04-21
编程技术问答社区
如何用ReactiveUI在ViewModel停用时正确地取消一个任务?
在我的MVVM应用程序中,当ViewModel被激活时,一个任务开始建立网络连接,并且可能需要一些时间才能完成.此任务是可取消的: private async Task ConnectAsync(CancellationToken cancellationToken = default) { ... } 我正在使用IActivatableViewModel在视图模型激活上启动它: // Constructor: public SomeViewModel(...) { this.WhenActivated(disposable => { Observable.StartAsync(ConnectAsync); }); } 现在,当ViewModel在任务完成之前停用时取消此长期运行任务的推荐方法是什么? 我想到了: this.WhenActivated(disposable => { Observable.St
0 2024-04-21
编程技术问答社区
WebClient DownloadFileAsync()阻塞线程
我正在尝试使用WPF和MVVM从我的Web服务器下载一个大文件(500 MB).因此,以下属性都与某种控件(ProgressBar)结合.问题是,即使使用下载fileasync. ,该应用程序仍然悬挂 文件是从我的日志(当然是文件生长)下载的. 这是我的代码: #region Methods private void StartDownload(string url, string localPath) { Logger.Debug("Starting to initialize file download"); if (!_webClient.IsBusy) { _webClient = new WebClient(); _webClient.Proxy = null; // http://stackoverflow.com/questions/7
0 2024-04-21
编程技术问答社区
有些电脑上的RelayCommand无法启动
首先,这是我的第一篇文章,所以要温柔;) 我有一个非常简单的WPF应用程序,其中包含一个菜单,其中有两个选项和不同视图中的某些按钮,其中大多数都具有与Microsoft.team -found.mvvm.relaycommand的数据绑定.在我的计算机上调试时,一切正常,运行内置的exe时,它可以正常工作,在我的同事计算机上,构建版本正常工作,但是当在我的办公室的另一台计算机上进行测试 火... xaml: //Menu item //Button c#: //Menu item public ICommand QuitComma
0 2024-04-21
编程技术问答社区