Xaml 文本框多重绑定
在我的WPF应用程序中,文档有两个属性:报告名和文件名。在UI中,用户填写报告名,文件名将自动填充为默认报告名。 在创建新文档的对话框中Xaml 文本框多重绑定,xaml,binding,Xaml,Binding,在我的WPF应用程序中,文档有两个属性:报告名和文件名。在UI中,用户填写报告名,文件名将自动填充为默认报告名。 在创建新文档的对话框中 <TextBox x:Name="tbReportName" Grid.Row="0" Grid.Column="1" Style="{StaticResource DialogInputStyle}" Text="{Binding UpdateSourceTrigger=PropertyChanged, Path=ReportName
<TextBox x:Name="tbReportName" Grid.Row="0" Grid.Column="1" Style="{StaticResource DialogInputStyle}"
Text="{Binding UpdateSourceTrigger=PropertyChanged, Path=ReportName,
ValidatesOnDataErrors=true, NotifyOnValidationError=true}" />
及
报告名绑定到viewmodel中的属性,我需要对文件名执行相同的操作
用户可以选择使用默认文件名或在文本框中更改它。我需要将文件名textbox的值绑定到我的viewmodel中的属性,但该绑定已用于从报告名textbox获取值
如果我想保持MVVM,我不知道该用什么
多重绑定,触发器。。。。有什么想法吗?它必须是XAML格式吗?如果在设置ReportName时FileName属性为空,则可以只设置该属性:
private string _reportName;
public string ReportName
{
get { return _reportName; }
set
{
_reportName = value;
if(string.IsNullOrEmpty(FileName))
{
FileName = _reportName;
}
OnPropertyChanged("ReportName");
}
}
private string _fileName;
public string FileName
{
get { return _fileName; }
set
{
_fileName = value;
OnPropertyChanged("FileName");
}
}
谢谢你的回答。Im不能这样做,因为用户应该能够更改已连接文本框中的默认文件名。您仍然将FileName属性绑定到第二个文本框,以允许用户覆盖默认文件名。抱歉,未实现您的解决方案。我猜这不应该是一个问题,但更多的是一个大脑窒息的例子
private string _reportName;
public string ReportName
{
get { return _reportName; }
set
{
_reportName = value;
if(string.IsNullOrEmpty(FileName))
{
FileName = _reportName;
}
OnPropertyChanged("ReportName");
}
}
private string _fileName;
public string FileName
{
get { return _fileName; }
set
{
_fileName = value;
OnPropertyChanged("FileName");
}
}