Связывание данных из ClipboardWatcher - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Nuget Willy-Kimura / SharpClipboard для извлечения данных из буфера обмена. Данные возвращаются в строку P c, но все еще не отображаются в TextBox.

TestClass:

public class TestClass : INotifyPropertyChanged
{
    private SharpClipboard clipboard = new SharpClipboard();

    public TestClass()
    {
        clipboard.ClipboardChanged += ClipboardChanged;
    }

    Private void ClipboardChanged(Object sender, ClipboardChangedEventArgs e)
    {
        if (e.ContentType == SharpClipboard.ContentTypes.Text)
        {
            Pc = clipboard.ClipboardText;
        }
    }

    private string _pc;
    public string Pc
    {
        get { return _pc; }
        set { if (_pc != value) { _pc = value; OnPropertyChanged(nameof(Pc)); } }
    }
}

XAML:

<TextBox Text="{Binding Pc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Controls:TextBoxHelper.Watermark="IP/Netbios" Style="{StaticResource MainTextBox}" Grid.Column="1"/>

Что не так с привязкой в ​​P c? У меня есть много других привязок в решении, и они отлично работают. Остальное связывание я называю с помощью icommand. Данные получают только один раз из методов. Но вот что-то получается автоматически.

Обновление - DataContext

private readonly TestClass testClass;

public MainWindow()
{
    InitializeComponent();
    testClass = new TestClass();
    DataContext = new TestClass(DialogCoordinator.Instance);
}

My DataContext. Я не уверен, что здесь все хорошо. 2x новый TestClass - я беспокоюсь об экземпляре TestClass здесь. DialogCoordinator.Instance от MahApps.Metro.

...