在我的WPF应用程序中,文档有两个属性,报告名称和文件名。在UI中,用户填写报告名称,文件名自动填充报告名称作为默认值。 在创建新文档的对话框中,我有
<TextBox x:Name="tbReportName" Grid.Row="0" Grid.Column="1" Style="{StaticResource DialogInputStyle}"
Text="{Binding UpdateSourceTrigger=PropertyChanged, Path=ReportName,
ValidatesOnDataErrors=true, NotifyOnValidationError=true}" />
和
<TextBox Grid.Row="5" Grid.Column="1" Text="{Binding Text,ElementName=tbReportName,UpdateSourceTrigger=PropertyChanged,Mode=OneWay,Converter={StaticResource safefilenamConverter}}" Style="{StaticResource DialogInputStyle}" >
报告名称绑定到viewmodel中的属性,我需要对文件名执行相同的操作
用户可以选择使用默认文件名或在文本框中更改它。我需要将文件名文本框的值绑定到我的viewmodel中的属性,但绑定已用于从报告名称文本框中获取值。
如果我想保留MVVM,不确定要使用什么
多重化,触发......任何想法?
答案 0 :(得分:0)
是否必须在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");
}
}