0

这是我的全球课程

public class Globals
{
    private static Globals instance = new Globals();

    protected Globals()
    {

    }

    public static Globals Instance
    {            
        get { return instance; }
    }

    public TrackList Tracklist = new TrackList();
}

这是智能代码中的 TrackList:

public class TrackList : SettingAttribute {
    public TrackList()
    {
        this.tracks = new ObservableCollectionExt<Track>();
    }

    protected ObservableCollectionExt<Track> tracks;

    public ObservableCollectionExt<Track> Tracks
    {
        get
        {
            return tracks;
        }
    }

    public class Track : ICloneable
    {
        protected Track()
        {
            // Track instance is achieved by GetTrack
        }

        public GetTrack(string path)
        {
            // code implementation here
        }
    }
}

我希望使用 XAML 在 ListView 中绑定 Globals.Instance.Tracklist.Tracks。

通过运行时,使用 ItemSource 属性真的很容易

lv.ItemsSource = Globals.Instance.Tracklist.Tracks;

但是使用 xaml 我尝试了几个代码,但没有一个是好的。

4

2 回答 2

0
ItemsSource="{Binding Tracklist.Tracks, Source={x:Static local:Globals.Instance}}"

Tracklist 必须是一个属性。将您的 Globals 类更改为:

public class Globals
{
    private static Globals instance = new Globals();

    protected Globals()
    {
        Tracklist = new TrackList();
    }

    public static Globals Instance
    {
        get { return instance; }
    }

    public TrackList Tracklist { get; private set; }
}
于 2012-09-07T10:48:52.250 回答
0

在您查看模型中创建类型为 Globals 的属性,如下所示:

    property Globals Globals {get;set;}

在 XAML 中绑定到它:

    <ListView ItemsSource="{Binding Path=Globals.Instance.Tracklist.Tracks}">
于 2012-09-07T10:49:13.700 回答