草庐IT

c# - 使 AvalonEdit MVVM 兼容

我正在努力使AvalonMVVM在我的WPF应用程序中兼容。通过谷歌搜索,我发现AvalonEditisnotMVVMfriendly我需要通过创建一个从TextEditor派生的类然后添加必要的依赖属性来导出AvalonEdit的状态。恐怕我对HerrGrunwald的回答很迷茫here:IfyoureallyneedtoexportthestateoftheeditorusingMVVM,thenIsuggestyoucreateaclassderivingfromTextEditorwhichaddsthenecessarydependencypropertiesandsynch

c# - 简化 WPF MVVM ViewModel 中的 RelayCommand/DelegateCommand

如果您正在执行MVVM并使用命令,您会经常在ViewModel上看到由私有(private)RelayCommand或DelegateCommand字段支持的ICommand属性,例如MSDN上原始MVVM文章中的这个示例:RelayCommand_saveCommand;publicICommandSaveCommand{get{if(_saveCommand==null){_saveCommand=newRelayCommand(param=>this.Save(),param=>this.CanSave);}return_saveCommand;}}但是,这会造成很多困惑,并使设

c# - 简化 WPF MVVM ViewModel 中的 RelayCommand/DelegateCommand

如果您正在执行MVVM并使用命令,您会经常在ViewModel上看到由私有(private)RelayCommand或DelegateCommand字段支持的ICommand属性,例如MSDN上原始MVVM文章中的这个示例:RelayCommand_saveCommand;publicICommandSaveCommand{get{if(_saveCommand==null){_saveCommand=newRelayCommand(param=>this.Save(),param=>this.CanSave);}return_saveCommand;}}但是,这会造成很多困惑,并使设

c# - 在 Xamarin.Forms 上的 XAML 中将 BindingContext 设置为 ViewModel

我想使用Xamarin.Form和MVVM开发一个简单的项目。在我的解决方案(名为XamarinPOC)中,除了标准的Xamarin.Forms项目之外,我还有一个单独的模型项目(XamarinPOC.Model)和一个单独的ViewModel项目(XamarinPOC.ViewModel)。我在XamarinPOC.ViewModel项目中为BaseViewModel类(实现了INotifyPropertyChanged接口(interface))定义了一个抽象类,在我创建了一个SummaryViewModel类之后,它使用一个简单的属性扩展了BaseViewModel类:names

c# - 在 Xamarin.Forms 上的 XAML 中将 BindingContext 设置为 ViewModel

我想使用Xamarin.Form和MVVM开发一个简单的项目。在我的解决方案(名为XamarinPOC)中,除了标准的Xamarin.Forms项目之外,我还有一个单独的模型项目(XamarinPOC.Model)和一个单独的ViewModel项目(XamarinPOC.ViewModel)。我在XamarinPOC.ViewModel项目中为BaseViewModel类(实现了INotifyPropertyChanged接口(interface))定义了一个抽象类,在我创建了一个SummaryViewModel类之后,它使用一个简单的属性扩展了BaseViewModel类:names

c# - 使用 MVVM 从 WPF 中的 TextBox 进行正确的 DataGrid 搜索

我是MVVM模式的新手,对何时使用代码隐藏有点困惑。我现在有一个非常简单的表单,其中包括一个TextBox和一个DataGrid。我想要的是能够让DataGrid根据TextBox更改其选定的项目。我已经在CodeBehind中完成了这项工作,使用以下代码效果很好:privatevoidtextBox1_TextChanged(objectsender,TextChangedEventArgse){for(inti=0;i现在,我只想突出显示Datagrid中以文本框中的文本开头的项目,并允许用户按下按钮来编辑所选项目。代码隐藏文件中有这个逻辑可以吗?或者我需要通过某种绑定(bind)

c# - 使用 MVVM 从 WPF 中的 TextBox 进行正确的 DataGrid 搜索

我是MVVM模式的新手,对何时使用代码隐藏有点困惑。我现在有一个非常简单的表单,其中包括一个TextBox和一个DataGrid。我想要的是能够让DataGrid根据TextBox更改其选定的项目。我已经在CodeBehind中完成了这项工作,使用以下代码效果很好:privatevoidtextBox1_TextChanged(objectsender,TextChangedEventArgse){for(inti=0;i现在,我只想突出显示Datagrid中以文本框中的文本开头的项目,并允许用户按下按钮来编辑所选项目。代码隐藏文件中有这个逻辑可以吗?或者我需要通过某种绑定(bind)

c# - WPF MVVM - 如何检测 View 是否为 "Dirty"

我目前需要通知我的应用程序用户,如果View上的任何字段已更改/更新。例如,如果用户更改View上的日期字段然后尝试关闭View,应用程序将显示一条消息,要求用户继续并丢失更改或取消,以便他们可以单击保存按钮。问题是:我如何检测到View中的任何数据字段发生了变化?希望这是有道理的,比你提前,问候, 最佳答案 您可以采取的一种方法是利用IChangeTracking和INotifyPropertyChanged接口(interface)。如果您创建一个抽象基类,您的View模型继承自(ViewModelBase),它实现了IChan

c# - WPF MVVM - 如何检测 View 是否为 "Dirty"

我目前需要通知我的应用程序用户,如果View上的任何字段已更改/更新。例如,如果用户更改View上的日期字段然后尝试关闭View,应用程序将显示一条消息,要求用户继续并丢失更改或取消,以便他们可以单击保存按钮。问题是:我如何检测到View中的任何数据字段发生了变化?希望这是有道理的,比你提前,问候, 最佳答案 您可以采取的一种方法是利用IChangeTracking和INotifyPropertyChanged接口(interface)。如果您创建一个抽象基类,您的View模型继承自(ViewModelBase),它实现了IChan

c# - 如何在 wpf ViewModel 中实现 observable int?

在我的mvvmViewModel中有这样的字段publicintDelta{get;privateset;}但是当我这样更新它时:Delta=newValue;UI未刷新。我在想数据绑定(bind)会为我做这件事。例如,我可以将集合声明为ObservableCollection,然后数据绑定(bind)将起作用。但是没有ObservableInt,怎么说View需要刷新呢?也许我应该提出一些事件“通知属性已更改”之类的? 最佳答案 你有两个选择:实现INotifyPropertyChanged类上的界面。继承自DependencyO