C# WPF从视图模型访问代码隐藏
使用在我的c#应用程序中显示气球 我希望程序中的触发器在出现时显示为弹出框/气球。问题是,我只能在.xaml.cs文件的代码隐藏中看到如何使用.ShowCustomBalloon方法显示引出序号,该文件在我的ViewModel中没有上下文。项目中的示例之所以有效,是因为它们使用代码隐藏来显示引出序号内容 我需要的是在.xaml文件上有一个事件侦听器,它可以触发这个绑定到viewModel属性的show balloon。问题是我在c#app dev.方面的经验不太好,我想知道如何处理这个问题。在代码隐藏(视图)中,您应该订阅属性更改事件(或其他事件,这实际上取决于您的ViewModel实现) 以下是ViewModel示例:C# WPF从视图模型访问代码隐藏,c#,wpf,xaml,mvvm,notifyicon,C#,Wpf,Xaml,Mvvm,Notifyicon,使用在我的c#应用程序中显示气球 我希望程序中的触发器在出现时显示为弹出框/气球。问题是,我只能在.xaml.cs文件的代码隐藏中看到如何使用.ShowCustomBalloon方法显示引出序号,该文件在我的ViewModel中没有上下文。项目中的示例之所以有效,是因为它们使用代码隐藏来显示引出序号内容 我需要的是在.xaml文件上有一个事件侦听器,它可以触发这个绑定到viewModel属性的show balloon。问题是我在c#app dev.方面的经验不太好,我想知道如何处理这个问题。在代
public class SomeViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string someProperty;
public string SomeProperty
{
get { return someProperty; }
set
{
someProperty = value;
OnPropertyChanged();
}
}
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
以下是示例视图:
public partial class SomeView : Window
{
public DiscImageView()
{
// ...
viewModel.PropertyChanged += ViewModel_PropertyChanged;
}
private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(SomeViewModel.SomeProperty))
{
// Logic for changed property event
}
}
}
还考虑使用一些MVVM库或框架,它们简化了很多生命。我建议,除此之外,它还有其他功能