WPF, Связывающий с локальной переменной

Слишком долго комментировать

Использование опции WITH REPLACE (как вы указали) перезапишет базу данных тем, что содержится в резервной копии. Причина, по которой вы получаете эту ошибку в вашем скрипте, может быть в том, что вы используете опцию FILE.

Параметры FILE, предшествующие имени устройства резервного копирования, определяют логические имена файлов базы данных, которые должны быть восстановлены из резервного набора; например, FILE = 'FILENAME'

Причина, по которой вы получаете ошибку, может заключаться в том, что набор резервных копий не является первой резервной копией базы данных в наборе носителей. Вам необходимо добавить правильный номер к опции FILE в предложении WITH.

....
WITH FILE = 1,  --this may not need to be 1
....

Если вам не нужно явно указывать имя файла, отбросьте обе опции FILE.

RESTORE DATABASE add_BackupDev
FROM DISK = @LastDatabaseRestore
WITH
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO

Это должно восстановить вашу базу данных.

23
задан Pieniadz 24 October 2013 в 12:15
поделиться

3 ответа

Для привязки к локальной «переменной» переменная должна быть:

  1. Свойство, а не поле.
  2. Public.
  3. Либо уведомляющее свойство (подходит для классов модели), либо свойство зависимости (подходит для классов представления)

Пример уведомляющего свойства:

public MyClass : INotifyPropertyChanged
{
    private void PropertyType myField;

    public PropertyType MyProperty
    {
        get
        {
            return this.myField;
        }
        set
        {
            if (value != this.myField)
            {
                this.myField = value;
                NotifyPropertyChanged("MyProperty");
            }
        }
    }

    protected void NotifyPropertyChanged(String propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

Пример свойства зависимости:

public MyClass : DependencyObject
{
    public PropertyType MyProperty
    {
        get
        {
            return (PropertyType)GetValue("MyProperty");
        }
        set
        {
            SetValue("MyProperty", value);
        }
    }

    // Look up DependencyProperty in MSDN for details
    public static DependencyProperty MyPropertyProperty = DependencyProperty.Register( ... );
}
25
ответ дан 29 November 2019 в 00:50
поделиться

Шаблон:

public string Text {get;set;}

, а привязка -

{Binding Text, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}

Если вы хотите, чтобы привязка обновлялась автоматически, вы должны сделать ее DependencyProperty.


Я думаю, что 3.5 добавлено ElementName в привязки, поэтому следующее немного проще:

<Window x:Name="Derp" ...
  <TextBlock Text="{Binding Text, ElementName=Derp}"/>
36
ответ дан 29 November 2019 в 00:50
поделиться

Если вы делаете это много, вы можете подумать о привязке DataContext всего окна к вашему классу. Это будет унаследовано по умолчанию, но все еще может быть переопределено, как обычно

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">

Затем для отдельных компонентов вы можете использовать

Text="{Binding Text}"
15
ответ дан 29 November 2019 в 00:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: