C# TextBlock绑定在开始时仅更新一次
我的.xaml文件中有一个texblock,我已绑定到属性。还有两个按钮指向++和--单击时该属性的值。问题是绑定只在应用程序开始时起作用 单击按钮时,将执行相应的命令,并且变量会更改其在代码中的值(因此执行给定的方法没有问题) 但是,在UI中看不到任何更改。我不确定这里的原因是什么,UI是否以某种方式被阻塞?我一直使用MVVM的方式工作,从来没有像绑定这样的问题 如果需要更多的代码,请告诉我,我不想在这里设置一堵巨大的代码墙 建造商:C# TextBlock绑定在开始时仅更新一次,c#,wpf,data-binding,C#,Wpf,Data Binding,我的.xaml文件中有一个texblock,我已绑定到属性。还有两个按钮指向++和--单击时该属性的值。问题是绑定只在应用程序开始时起作用 单击按钮时,将执行相应的命令,并且变量会更改其在代码中的值(因此执行给定的方法没有问题) 但是,在UI中看不到任何更改。我不确定这里的原因是什么,UI是否以某种方式被阻塞?我一直使用MVVM的方式工作,从来没有像绑定这样的问题 如果需要更多的代码,请告诉我,我不想在这里设置一堵巨大的代码墙 建造商: public MainWindow() {
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Zoom = 60;
ZoomPlusSceneCommand = new RelayCommand(ZoomPlus);
ZoomMinusSceneCommand = new RelayCommand(ZoomMinus);
}
处理属性已更改:
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
财产本身:
private int zoom;
public int Zoom
{
get { return zoom; }
set { if (zoom != value) { zoom = value; RaisePropertyChanged("Zoom"); } }
}
命令:
public RelayCommand ZoomPlusSceneCommand { get; set; }
public RelayCommand ZoomMinusSceneCommand { get; set; }
其中RelayCommand是我在大多数项目中用作模板的实现,它们一直工作得很好(至少在MVVM项目中)
单击按钮时使用命令执行的方法:
private void ZoomPlus(object o)
{
Zoom++;
}
private void ZoomMinus(object o)
{
Zoom--;
}
Xaml:
假设设置了属性,则应更新视图,前提是
main窗口
类实际实现了INotifyPropertyChanged
:
public partial class MainWindow : Window, INotifyPropertyChanged
...
如何为绑定设置DataContext?@ASh在windows构造函数中我有
this.DataContext=this代码>您显示的内容看起来正常(尽管您可以)。您可以显示更多内容吗?请尝试将Zoom++
替换为Zoom+=1
,并将Zoom--
替换为Zoom-=1
@trix无法帮助您了解缺少的内容。谢谢
private void SceneMouseWheel(object sender, MouseWheelEventArgs e)
{
if (e.Delta > 0)
Zoom++;
else
Zoom--;
return;
}
public partial class MainWindow : Window, INotifyPropertyChanged
...