2013-04-09 3 views
0

У меня есть пользовательский элемент управления, в котором у меня есть текстовые блоки. Я хочу включить этот usercontrol в listBox (или listview в случае возникновения каких-либо проблем).Можно выполнить «простую» привязку с помощью UserControl?

Когда я проверяю выходные окна, я вижу отсутствие привязки, но я ничего не вижу в текстовом блоке.

Есть ли все, чтобы сделать эту работу?

спасибо:

Вот ListBox я использую сейчас:

<ListBox AllowDrop="True" Grid.Row="1" 
     Style="{StaticResource BaseListBox}" x:Name="LstEquipeDefaut"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <my:ucEquipe x:Name="ucEquipe" Grid.Row="1" Margin="5,0,5,2"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Вот UserControl:

<UserControl x:Class="ucEquipe" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
     mc:Ignorable="d"  
     d:DesignHeight="350" d:DesignWidth="180" MinWidth="180" > 
<Border Style="{StaticResource UControlBorder}"> 
    <Grid x:Name="LayoutRoot"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="32" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="35" /> 
      <RowDefinition Height="100" /> 
      <RowDefinition Height="35" /> 
      <RowDefinition Height="100" /> 
     </Grid.RowDefinitions> 

     <TextBox AllowDrop="True" x:Name="TxtChiefEquipe" 
       Style="{StaticResource BaseTextBox}" 
       Text="{Binding Mode=OneWay,Path=chefEquipe.NomComplet}" 
       Grid.Row="1" />   
    </Grid> 
</Border> 

Вот это Objets я использую:

Public Class Equipe 

Public Property ID As Long = 0 
Public Property Couleur As String = "" 
Public Property Semaine As New Date(1900, 1, 1) 
Public Property chefEquipe As Employe = Nothing 

Public Property ListEquipeEmploye As New List(Of EquipeEmploye) 
Public Property ListEquipeEquipement As New List(Of EquipeEquipement) 

End Class 

У работника проекта есть свойство NomComplet. На данный момент я вручную добавил новые объекты в список для тестирования.

+0

Где это свойство 'chefEquipe.NomComplet' проживает? –

+0

Справа ... Забыл поставить объект, который я использовал –

ответ

1

Ваш Equipe класс должен реализовать INotifyPropertyChanged

private Employe _chefEquipe; 
public Employe ChefEquipe 
{ 
    get { retun _chefEquipe; } 
    set 
    { 
     _chefEquipe = value; 
     NotifyPropertyChanged("ChefEquipe"); 
    } 
} 

К сожалению о C#, я не помню синтаксис VB больше =)

+0

На самом деле я нашел проблему. Человек, запрашивающий помощь, забыл упомянуть, что текстовый блок был невидимым в файле ресурсов ... Но вы правы. Лучше реализовать это. –

Смежные вопросы