文本框多重绑定

时间:2012-10-26 14:02:43

标签: xaml binding

在我的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,不确定要使用什么

多重化,触发......任何想法?

1 个答案:

答案 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");
    }
}