草庐IT

c# - 如何使用 WPF 从 bindingexpression 解析绑定(bind)对象?

您好,有人知道是否有任何内置类可以从绑定(bind)表达式及其DataItem和属性路径中解析绑定(bind)对象吗?我正在尝试为文本框编写一个Blend3行为,它会自动调用绑定(bind)到文本框Text属性的对象上的方法。文本框绑定(bind)到View模型类的属性。我想要做的是从绑定(bind)表达式中解析View模型类,然后对其进行调用。我首先从行为的关联对象中检索绑定(bind)表达式,如下所示:privateBindingExpressionGetTextBinding(){returnthis.AssociatedObject.GetBindingExpression(T

c# - 如何使用 MVVM 模式在 WPF 中将一个 "disable"设为一个按钮?

我正在尝试掌握WPF和MVVM,并且取得了不错的进展。WPF和MVVM方面进展顺利。但是,XAML和数据绑定(bind)方面完全是另一回事:)我将如何“禁用”按钮?例如,我的View模型中有一个CanClose属性,用于确定应用程序当前是否可以关闭。如果工作线程停止执行某些操作,则此属性设置为false,我想将按钮变灰或以某种方式通过某种绑定(bind)在视觉上禁用“关闭”按钮。我该怎么做?谢谢!编辑-可惜我只能接受一个答案。这两个答案对我帮助很大。在Kent的帖子中,他更进一步地解释了为什么您应该在您的应用程序中实现一个命令基础结构,而不是像我所要求的那样禁用一个按钮:Howdoes

c# - 如何使用 MVVM 模式在 WPF 中将一个 "disable"设为一个按钮?

我正在尝试掌握WPF和MVVM,并且取得了不错的进展。WPF和MVVM方面进展顺利。但是,XAML和数据绑定(bind)方面完全是另一回事:)我将如何“禁用”按钮?例如,我的View模型中有一个CanClose属性,用于确定应用程序当前是否可以关闭。如果工作线程停止执行某些操作,则此属性设置为false,我想将按钮变灰或以某种方式通过某种绑定(bind)在视觉上禁用“关闭”按钮。我该怎么做?谢谢!编辑-可惜我只能接受一个答案。这两个答案对我帮助很大。在Kent的帖子中,他更进一步地解释了为什么您应该在您的应用程序中实现一个命令基础结构,而不是像我所要求的那样禁用一个按钮:Howdoes

c# - WPF - 单击按钮时设置焦点 - 无代码隐藏

有没有办法使用WPFTrigger将Focus从一个控件设置到另一个控件?像下面的例子:有没有办法让这个EventTrigger将焦点放在文本框“txtName”上?我正在尝试找到使用严格的MVVM来执行此类操作的方法。如果这是不应该通过XAML(在MVVM中)完成的事情,那也没关系。但我希望看到某种文档,说明它如何适合在XAML之外执行的MVVM模式。 最佳答案 您是否考虑过使用附加行为。它们易于实现和使用AttachedProperty。虽然它仍然需要代码,但这段代码被抽象到一个类中并被重用。它们可以消除“代码隐藏”的需要,并且

c# - WPF - 单击按钮时设置焦点 - 无代码隐藏

有没有办法使用WPFTrigger将Focus从一个控件设置到另一个控件?像下面的例子:有没有办法让这个EventTrigger将焦点放在文本框“txtName”上?我正在尝试找到使用严格的MVVM来执行此类操作的方法。如果这是不应该通过XAML(在MVVM中)完成的事情,那也没关系。但我希望看到某种文档,说明它如何适合在XAML之外执行的MVVM模式。 最佳答案 您是否考虑过使用附加行为。它们易于实现和使用AttachedProperty。虽然它仍然需要代码,但这段代码被抽象到一个类中并被重用。它们可以消除“代码隐藏”的需要,并且

c# - WPF:将 ContextMenu 绑定(bind)到 MVVM 命令

假设我有一个带有返回Command的属性的Window(实际上,它是一个ViewModel类中带有Command的UserControl,但让我们尽可能简单地重现问题)。以下作品:但是以下不起作用。我得到的错误信息是System.Windows.DataError:4:Cannotfindsourceforbindingwithreference'ElementName=myWindow'.BindingExpression:Path=MyCommand;DataItem=null;targetelementis'MenuItem'(Name='');targetpropertyis'

c# - WPF:将 ContextMenu 绑定(bind)到 MVVM 命令

假设我有一个带有返回Command的属性的Window(实际上,它是一个ViewModel类中带有Command的UserControl,但让我们尽可能简单地重现问题)。以下作品:但是以下不起作用。我得到的错误信息是System.Windows.DataError:4:Cannotfindsourceforbindingwithreference'ElementName=myWindow'.BindingExpression:Path=MyCommand;DataItem=null;targetelementis'MenuItem'(Name='');targetpropertyis'

c# - 将 DataTemplate 中的按钮绑定(bind)到表单的 ViewModel 中的命令

我的问题类似于这个问题中描述的问题:WPFMVVMButtonControlBindinginDataTemplate这是我的XAML:-->这只是一个ListBox,绑定(bind)到ObservableCollection名为CommandSets(在ViewModel中)。此绑定(bind)有效(它为集合中的每个项目显示一个按钮)。现在我想将按钮绑定(bind)到命令(FireCommand),它也在ViewModel中。这是ViewModel的相关部分:publicclassMainWindowViewModel:INotifyPropertyChanged{publicICo

c# - 将 DataTemplate 中的按钮绑定(bind)到表单的 ViewModel 中的命令

我的问题类似于这个问题中描述的问题:WPFMVVMButtonControlBindinginDataTemplate这是我的XAML:-->这只是一个ListBox,绑定(bind)到ObservableCollection名为CommandSets(在ViewModel中)。此绑定(bind)有效(它为集合中的每个项目显示一个按钮)。现在我想将按钮绑定(bind)到命令(FireCommand),它也在ViewModel中。这是ViewModel的相关部分:publicclassMainWindowViewModel:INotifyPropertyChanged{publicICo

c# - 使用 MVVM 绑定(bind)到 AvalonEdit 文档文本的两种方式

我想将AvalonEditTextEditor控件包含到我的MVVM应用程序中。我需要的第一件事是能够绑定(bind)到TextEditor.Text属性,以便我可以显示文本。为此,我遵循了MakingAvalonEditMVVMcompatible中给出的示例。.现在,我已经使用接受的答案作为模板实现了以下类publicsealedclassMvvmTextEditor:TextEditor,INotifyPropertyChanged{publicstaticreadonlyDependencyPropertyTextProperty=DependencyProperty.Regi