我在自定义用户控件上进行数据绑定时遇到了困难.我创建了一个示例项目来突出我的问题.我是WPF的新手,也是MVVM的新手,所以请耐心等待......
我创建了一个使用数据绑定两种方式的简单视图.内置控件上的数据绑定工作正常.我的自定义控件没有...我在PropertyChangedCallback我的控件中放了一个断点.它在启动时被击中一次,但从未再次被击中.与此同时,我已经绑定到相同价值的标签很高兴倒计时.
我错过了什么?我的示例项目如下:
主窗口:
<Window x:Class="WpfMVVMApp.MainWindow"
xmlns:local="clr-namespace:WpfMVVMApp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.DataContext>
<local:CountdownViewModel />
</Grid.DataContext>
<Label Name="custName" Content="{Binding Path=Countdown.ChargeTimeRemaining_Mins}" Height="45" VerticalAlignment="Top"></Label>
<local:UserControl1 MinutesRemaining="{Binding Path=Countdown.ChargeTimeRemaining_Mins}" Height="45"></local:UserControl1>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
namespace WpfMVVMApp
{
public class CountdownModel : INotifyPropertyChanged
{
private int chargeTimeRemaining_Mins;
public int ChargeTimeRemaining_Mins
{
get
{
return chargeTimeRemaining_Mins;
}
set
{
chargeTimeRemaining_Mins = value;
OnPropertyChanged("ChargeTimeRemaining_Mins");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); …Run Code Online (Sandbox Code Playgroud)