0

私の WPF アプリケーションでは、ドキュメントにレポート名とファイル名の 2 つのプロパティがあります。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}" >

レポート名はビューモデルのプロパティにバインドされており、ファイル名で同じことを行う必要があります

ユーザーは、デフォルトのファイル名を使用するか、テキストボックスで変更するかを選択できます。ファイル名のテキスト ボックスの値をビューモデルのプロパティにバインドする必要がありますが、バインディングはレポート名のテキスト ボックスから値を取得するために既に使用されています。

MVVM のままにしたい場合に何を使用すればよいかわからない

マルチビンギング、トリガー....アイデアはありますか?

4

1 に答える 1

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");
    }
}
于 2012-10-26T21:07:17.127 に答える