У меня есть ItemsControl
, который имеет свой ItemsSource
набор с Binding
к ObservableCollection
на моем ViewModel
. Я использую элемент управления Button
в своем ItemTemplate
, чтобы отображать мои данные, и я использую DataTemplate
в пределах Button
, и ни одна из данных Binding
не отображается. Ниже приведен XAML в вопрос:XAML вложенные DataTemplate привязки данных
<ItemsControl ItemsSource="{Binding Path=ConnectedInstruments}" HorizontalAlignment="Left">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Height="60" VerticalAlignment="Top">
<Button.ContentTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=ModelCode}" />
<TextBlock Text="{Binding Path=SerialNumber}" />
</StackPanel>
</DataTemplate>
</Button.ContentTemplate>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Ни TextBlock
управления в Button
DataTemplate
в настоящее время заполнены. Я понимаю, что это имеет какое-то отношение к пути Binding
, однако я не понимаю, что я делаю неправильно. Может ли кто-нибудь поставить меня на правильный путь, пожалуйста?
EDIT
public class Instrument
{
public string ModelCode { get; set; }
public string SerialNumber { get; set; }
}
public class ViewModel
{
public ObservableCollection<Instrument> ConnectedInstruments { get; set; }
}
Я знаю, что ItemsControl
является Binding
правильно с ObservableCollection
, как показываются правильный подсчет Button
управления, только шаблонный данные отсутствуют.
Не могли бы вы также указать структуру данных? Viewmodel –
@VidasVasiliauskas - Я добавил код в вопрос – Unflux
Вы устанавливаете эти значения во время выполнения после применения привязки? Также вам не нужен атрибут Path просто написать Text = "{Binding ModelCode}" –