簡體   English   中英

在后面的代碼中綁定到靜態屬性

[英]Binding to static poperty in code behind

我很難在代碼中綁定到靜態屬性。 在WPF中,我做到了,如下所示:

<TextBlock Text="{Binding Source={x:Static local:LogListener.Instance}, Path=LogItem.LogType}" Margin="2" />

現在我想將“ LogItem”綁定到新的dp

#region LogItem

    public static readonly DependencyProperty LogItemProperty = DependencyProperty.Register(
        "LogItem", typeof(LogItem), typeof(NpLoggerControl),
        new PropertyMetadata(default(LogItem), LogItemPropertyChanged));

    private static void LogItemPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
    {
        var type = source as NpLoggerControl;
        type?.LogItemPropertyChanged(e);
    }

    protected virtual void LogItemPropertyChanged(DependencyPropertyChangedEventArgs e)
    {
        var item = (LogItem) e.NewValue;
    }

    public LogItem LogItem
    {
        get { return (LogItem) GetValue(LogItemProperty); }
        set { SetValue(LogItemProperty, value); }
    }

我不知道如何在代碼中進行設置

您可以像在XAML中一樣設置屬性:

textBlock.SetBinding(
    TextBlock.TextProperty,
    new Binding
    {
        Source = LogListener.Instance,
        Path = new PropertyPath("LogItem.LogType")
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM