簡體   English   中英

WPF將控件綁定到靜態object []數組數據(.NET 4.5)

[英]WPF bind controls to static object[] array data (.NET 4.5)

我有一個靜態的object []數組(500多個項目),每秒更改一次,還有許多控件需要顯示此數組中包含的數據。 我需要此數組為靜態數組,因為它在許多其他類中使用。

是否可以在.NET 4.5中實現這種綁定? 我正在嘗試下面的代碼,但未成功(基於http://www.jonathanantoine.com/2011/09/28/wpf-4-5-%E2%80%93-part-9-binding-to-static -properties / )。 我在編譯時收到“ Playback.Control”未實現接口成員“ System.ComponentModel.INotifyPropertyChanged.PropertyChanged”的錯誤

public class Control : INotifyPropertyChanged
{
    public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
    public static void RaiseChangeEvent(string propName)
    {
        EventHandler<PropertyChangedEventArgs> handler = StaticPropertyChanged;
        if (handler != null)
        handler(null, new PropertyChangedEventArgs(propName));
    }

    private static int _playposition;
    public static int PlayPosition { get { return _playposition; } set { if (_playposition == value) return; _playposition = value; RaiseChangeEvent("PlayPosition"); } }

    public static DataTable JobData { get; private set; }

    private static Object[] _currentdata;
    public static Object[] CurrentData { get { return _currentdata; } set { if (_currentdata == value) return; _currentdata = value; RaiseChangeEvent("CurrentData"); } }

    private static Object[] _previousdata;
    public static Object[] PreviousData { get { return _previousdata; } set { if (_previousdata == value) return; _previousdata = value; RaiseChangeEvent("PreviousData"); } }
}

您鏈接到的文章有點混亂,我懷疑您混淆了兩種方法。 查看作者的保管箱項目,似乎有兩種方法-一種實現INotifyPropertyChanged的類,另一種不實現 (Repository.cs)。 后者使用了我認為您嘗試使用的StaticPropertyChanged事件方法。 我猜您只需要更改您的代碼即可不實現INotifyPropertyChanged,但請確保檢查作者的保管箱代碼。

暫無
暫無

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

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