问题标签 [fody-propertychanged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 有没有办法“告诉” IntelliSense 和编译器该类实现了接口而不实际实现它?
我在我的 C# 项目中使用 Fody.PropertyChanged 和 Fody.Validar 以避免编写样板代码。假设我有一些 A 类:
我必须在代码的其他部分使用 A 类型的对象,这些部分需要 A 类型来实现 INotifyPropertyChanged 或 INotifyDataErrorInfo 等接口。有两种已知的方法可以做到这一点:
- 手动实现接口(很多样板文件):
- 将类型 A 的对象转换为所需的接口(更多代码,ReSharper 会生成有关可疑转换的警告,泛型方法可能会中断):
有没有办法“告诉” IntelliSense 和编译器该类实现了接口而不实际实现它并让 Fody 完成这项工作?
c# - 除非双击,否则修改源时 DataGrid 的值不会更新
修改其中的值时,我的 DataGrid 的值似乎没有更新。
我努力了:
- 将模式设置为
TwoWay
- 使用
BindableCollection
(来自 Caliburn.Micro) - 使用
ObservableCollection
- 用一个
List
- 合并
QuotationViewModel
_TableViewModel
- 添加
Work
和删除项目 x:Name="Work"
在 DataGrid 中使用而不是 ItemsSource
表视图模型.cs
表视图.xaml
报价视图模型.cs
报价单视图.xaml
存储库:https ://github.com/hizamakura/Furniture
从这个gif 中可以看出,当我双击它时,值会更新,它应该更新而无需双击它。我知道绑定是正确的,因为当我更新 Value 时,比如Milling
to 0.20
,Total
将会更改为20%
Mahogany。
c# - PropertyChanged 不会从不同程序集中的类中触发
我有一个类库,其中包含一个BaseViewModel
实现 的基类 ()INotifyPropertyChanged
和一个派生自它的类 ( TestExternal
)。
我使用 Fody v4.2.1 和 PropertyChanged.Fody v2.6.1。
在 WPF 应用程序中,我将该类用作 DataContext。更改属性时,它不会反映在应用程序中。TestInternal
但是,如果我将该类从类库复制(并重命名为)到应用程序,则属性更改会反映在应用程序中。该类TestInternal
派生自BaseViewModel
类库中的相同类。
此简化示例中的类由 astring
和组成ObservableCollection<string>
。
ObservableCollection<string>
绑定到控件,并且在这两种情况下,添加元素都会"d"
正确反映在应用程序中。但是将字符串属性设置"C"
为仅反映在TestInternal
类中。
我需要做什么才能使它正常工作?
BaseViewModel.cs
测试外部.cs
测试内部.cs
XAML
wpf - Fody 及其插件可以与 .NET Core (3.0) 一起使用吗?
正如标题所说,我无法让Fody和插件Fody.PropertyChanged在 .NET Core 3.0 或任何 .NET Core 版本中工作。阅读各个 GitHub 页面上的问题并不能回答我的问题,我也无法找到任何相关的答案。
安装后,我无法再运行我的 WPF 项目,并且出现以下错误:
有什么建议么?
编辑:我发现我(也许)不能在 FodyWeavers.xml 文件中像这样使用“Fody.Costura”和“Fody.PropertyChanged”:
这应该不是问题,因为使用 .NET Core 我无论如何都可以创建单个文件应用程序。从 FodyWeavers.xml 中删除 Costura 引用解决了我的问题!
msbuild - 当 Fody 编写程序集时,MSBuild 永远挂起
在我的解决方案中,许多项目使用Fody来注入PropertyChanged编织器。不幸的是,在构建结束时,当Fody开始编写最终程序集时,进程挂起并且无法恢复。
这是我正在执行的 MSBuild 命令:
这是构建的日志:
如果我尝试取消构建,它将在这种状态下永远挂起CTRL-C我收到以下消息:
该过程将继续尝试每 10 秒左右取消一次构建,但未成功。MSBuild 任务变得无法杀死,我需要重新启动机器才能尝试启动另一个构建!
该项目使用以下内容:
- Fody.3.0.3
- PropertyChanged.Fody.2.4.0
我使用的 msbuild 版本是16.4.0.56107
我尝试更新到最新的 Fody 版本,但没有帮助。
我知道这可能是一个长镜头;如果有人对如何调查此问题有任何提示/想法,请分享。谢谢你。
-- 编辑 -- 如果我从失败的项目中删除 PropertyChanged 和 Fody,则解决方案可以完成构建。什么可能导致 Fody 上吊?
wpf - 如何使用 wpf 和 mvvm 中的动态菜单获得正确的 CommandParameter Binding
我在我的 WPF 应用程序中实现了一个动态菜单服务。每个命令可以或应该有不同的命令参数。
问题: 使用我在 xaml 中设置 CommandParamter 绑定的解决方案,命令中的 CanExecute 属性不再更新。
到目前为止我有什么
我正在使用 mvvm-light 和 fody-propertychanged。
这里的菜单类:
此类由 MenuService 使用:
在视图模型的构造函数中,我得到了 MenuService 的实例并添加了一些项目:
然后我在视图模型中有一个可绑定的属性:
这里的命令实现为 RelayCommand:
然后在 MainView 我有以下 xaml:
注意力。xaml 中的 CommandParameter 绑定类型当前不正确。这是另一个问题,我会自己解决。但出于测试目的,它应该可以工作。由于类型错误,它会给我一个例外。
但是,当我在 Style.Trigger 中使用 DataTrigger 进行 CommandParameter 绑定时,CanExecute 属性在运行时不再更新。当我将此部分注释掉时,一切正常。但是我没有CommandParameters。
欢迎任何帮助和建议。
wpf - 无法使用 INotifyPropertyChanged 扩展 MVVMLight 的 ViewModelBase
我一直在使用自己的ViewModelBase
and RelayCommand
,最近我安装了 MVVMLight 以及 PropertyChanged.Fody。如果您使用的是自定义设置器,PropertyChanged.Fody 似乎不会通知,所以我确实需要OnPropertyChanged
自己在某个地方实现。
这是一个仍然继承自我自己的类的成员ViewModelBase
我想让这个类从 MVVMLight's 继承ViewModelBase
,但如果我这样做,它会说PropertyChanged
隐藏其继承的成员,当我删除该事件的声明(使用继承的成员)时,我在OnPropertyChanged
方法中遇到错误,说PropertyChanged
只能用于 += 或 -= 的左侧。
我已经设法通过声明PropertyChanged
为 a来解决这个问题new event
,这允许我从 MVVMLight 继承ViewModelBase
,但这对我来说不合适。
我是在使用new event
关键字“做对了”,还是对如何PropertyChanged
按预期使用有一些答案OnPropertyChanged
?
(或者,有没有办法编写我的自定义设置器并让通知工作而无需显式调用OnPropertyChanged()
?)
xamarin.forms - Fody System.OutOfMemoryException
我有一个使用 PropertyChanged.Fody 的 Xamarin Forms 项目。
我已经更新了 3.2.8 版本,当我尝试编译 PCL 项目时会触发此错误。
我在 Windows 上使用 Visual Studio 16.6.0。
我该如何解决这个问题?
c# - NotifyPropertyChanged 未在派生类中触发
我有这 3 节课
使用如图所示的代码,更改OnSelectedAreaIdChanged
时不会触发。SelectedAreaId
如果我取消注释代码,则会OnSelectedAreaIdChanged
触发。
这是预期的行为吗?除了我已经做到的方式之外,还有其他方法吗?
c# - Fody PropertyChanged Weaver 导致内存问题
我将 PropertyChanged.Fody 安装到 WPF 应用程序中。现在使用本机内存的第 3 方代码存在内存分配问题。卸载 PropertyChanged.Fody 可以解决所有这些问题。我认为该包导致属性更改注入到这些程序集中的类中,所以我添加了一个 [程序集:PropertyChanged.FilterType("My.Specific.OptIn.Namespace.")] 我安装 fody 的项目以使注入选择加入. 请注意,我完全按照我刚刚编写的方式保留了过滤器属性,因此没有任何匹配项,只是为了测试。然而仍然有问题。