Как отобразить один элемент с помощью DataTemplate в Silverlight?

Я пытаюсь отобразить один элемент (не содержащийся в коллекции) с помощью DataTemplate. Вот что у меня до сих пор, что ничего не показывает. Замена ItemsControl на ListBox отображает пустой список (так что я знаю, что элемент есть).

        <ItemsControl
            ItemsSource="{Binding Session}"
            ItemTemplate="{StaticResource SessionHeaderDataTemplate}"
            />

Session - это единственный объект. Я хочу использовать DataTemplate, потому что я показываю ту же информацию в другом месте в своем приложении и хотел, чтобы стиль презентации определялся как ресурс, поэтому я могу обновить его в одном месте.

Любые идеи, или я должен создать 1-элементную коллекцию в моей модели ViewModel и привязать ее к этому?

Изменить: Это то, что я закончил, хотя ответ ниже также является решением. Я довольно привязан к моему DataTemplates, поэтому не чувствовал себя комфортно, когда что-то вроде этого вытолкнуло в другой файл XAML.

XAML:

        <ItemsControl
            DataContext="{Binding}"
            ItemsSource="{Binding Session_ListSource}"
            ItemTemplate="{StaticResource SessionHeaderDataTemplate}" />

ViewModel:

    private Session m_Session;
    public Session Session
    {
        get { return m_Session; }
        set
        {
            if (m_Session != value)
            {
                m_Session = value;
                OnPropertyChanged("Session");

                // Added these two lines 
                Session_ListSource.Clear();
                Session_ListSource.Add(this.Session);
            }
        }
    }

    // Added this property.
    private ObservableCollection<Session> m_Session_ListSource = new ObservableCollection<Session>();
    public ObservableCollection<Session> Session_ListSource
    {
        get { return m_Session_ListSource; }
        set
        {
            if (m_Session_ListSource != value)
            {
                m_Session_ListSource = value;
                OnPropertyChanged("Session_ListSource");
            }
        }
    }

Ответы

Ответ 1

Придерживайтесь своих данных для простых представлений без кода вместо того, чтобы создавать другие пользовательские элементы управления. Используйте ContentControl для отображения вашего DataTemplate для одного элемента.

 <ContentControl 
      ContentTemplate="{StaticResource SessionHeaderDataTemplate}" 
      Content="{Binding Path=Session}" />

Ответ 2

Вам не нужно использовать элемент ItemsControl для этого, просто создайте пользовательский элемент управления, а затем привяжите его, например.

<TestProject:myControl DataContext="{Binding Session}" />

Пользовательский элемент управления может иметь собственный файл xaml, поэтому он может выглядеть так, как вы хотите.