C# 如何在不使用MVVM的情况下绑定DependencyProperty

C# 如何在不使用MVVM的情况下绑定DependencyProperty,c#,wpf,xaml,binding,dependency-properties,C#,Wpf,Xaml,Binding,Dependency Properties,嗯,我正在做一个小项目,我发现没有必要实现一个完整的MVVM 我试图在代码隐藏中绑定一些属性,但无法使其正常工作 关键是在代码隐藏中使用DependencyProperties和绑定 我试图通过以下链接和问题: 但是它们与MVVM有关,或者至少我不能在我的情况下修改代码 这个例子应该非常简单 main window.xaml <Label Name="_lblCurrentPath" Style="{StaticResource CustomPathLabel}"

嗯,我正在做一个小项目,我发现没有必要实现一个完整的MVVM

我试图在代码隐藏中绑定一些属性,但无法使其正常工作

关键是在代码隐藏中使用DependencyProperties和绑定

我试图通过以下链接和问题:

但是它们与MVVM有关,或者至少我不能在我的情况下修改代码

这个例子应该非常简单

main window.xaml

<Label Name="_lblCurrentPath"
        Style="{StaticResource CustomPathLabel}"
        ToolTip="{Binding CurrentPath}"
        Content="{Binding CurrentPath, Mode=TwoWay,
                     UpdateSourceTrigger=PropertyChanged}"/>
有什么想法吗

.如果这是一种不好的做法,我应该使用MVVM,那么欢迎评论,当然


.还有。。。与
命令
属性相关。在我不想使用MVVM方法的情况下,注册事件是否更好?我发现使用自定义命令绑定有点乏味。

首先,您可以完全使用不带MVVM的绑定。我不推荐它,因为当您使用MVVM时,代码要干净得多,但它是可以做到的。您只需将这一行放入构造函数:

this.DataContext = this;
现在,您的视图也是您的视图模型!就像我说的,这不是个好主意

现在,您拥有的代码在
main窗口
类中有一个
dependencProperty
不要那样做。这完全没有用。DPs存在,因此父控件可以为它们提供绑定<代码>主窗口没有父窗口;所以DP是无用的

您只需设置一个常规属性:

public string CurrentPath
{
    get { return currentPath; }
    set
    {
         currentPath = value;
         NotifyPropertyChanged();
    }
}
然后让
main窗口
implement
INotifyPropertyChanged
(我提到过使用简单视图模型更有意义吗?)


回答您的
命令
问题。是的,如果您反对使用命令,只需注册事件即可。然而,
命令
是一种让用户点击视图模型而不破坏MVVM的非常好的方法。语法也没那么糟糕。但是,如果您采用“视图作为视图模型”的方法,
命令对您没有多大帮助。

这是一种不好的做法,您应该使用MVVM(您说过我们可以评论;)。谢谢。这很容易。是的,最后我想我会使用MVVM方法。我过去习惯于创建自定义的框架,但我发现像mvvmlight或caliburn@blacai继续使用你最喜欢的框架,但是我花了五分钟为我做的每个新项目建立自己的框架。其实没那么难。很高兴听到你要用正确的方法做这件事!嗯,目前我没有最喜欢的框架。就像我说的,我曾经创造过我自己的框架,但是我看到了很多关于它们的问题,我想看看:)@blacai Meh,98%的时间框架让我的生活更艰难,所以除非我真的需要它们,否则我会尽量避免它们。祝你在搜索中好运。
public string CurrentPath
{
    get { return currentPath; }
    set
    {
         currentPath = value;
         NotifyPropertyChanged();
    }
}