使用的插件是:CommunityToolkit
Binding绑定不上的一般解决情况:
DataContext
全局绑定:
d:DataContext="{d:DesignInstance Type=local:CommSettingView}"
在某个组件上绑定:
<Grid DataContext="{Binding RelativeSource={RelativeSource AncestorType=local:SysSettingView}}">
RelativeSource
Command="{Binding SaveCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
Mode(默认是双向通知)
<TextBox Text="{Binding PortNumber,Mode=TwoWay,RelativeSource={RelativeSource AncestorType=UserControl}}"/>
将类继承INotifyPropertyChanged
public partial class SysSettingView :INotifyPropertyChanged
重写接口(复制即可):
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
在代码里定义前端绑定的变量:ImgSaveLoc
public string ImgSaveLoc { get; set; }
前端绑定ImgSaveLoc
<TextBox Text="{Binding ImgSaveLoc,RelativeSource={RelativeSource AncestorType=UserControl},Mode=TwoWay}"/>
通知变更:
OnPropertyChanged(nameof(ImgSaveLoc));
如果绑定的是引用类型(如类、数组、接口、委托等),或者引用类型中的某个成员,需要使用 new 关键字来实例化对象。