2016-02-16 4 views
1

У меня есть ObservableCollection<ControlMachine>, где каждый ControlMachine является UserControl, используемым для отображения информации об одном компьютере.Лучшая практика добавления UserControl в родительский контроль через привязку

public static ObservableCollection<ControlMachine> ListControleMachine = 
         new ObservableCollection<ControlMachine>(); 

Я попытался отобразить коллекцию с помощью связывания

<Grid ForceCursor="True" x:Name="grid2" OpacityMask="{x:Null}" Margin="10,38,10,10" Background="#FFF5F6F6"> 
     <ItemsControl ItemsSource="{Binding ListControleMachine}"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate DataType="{x:Type Brush}"> 
        <Rectangle Canvas.ZIndex="3" Width="100" Height="100" Canvas.Top="100" Canvas.Left="100" Fill="blue"/> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </Grid> 

Мой пользовательский элемент управления не отображается в Grid с этим кодом. Что не так?

Вопрос: Какова наилучшая практика для управления такой ControlMachine под другими ?.

Эти ControlMachine могут быть закрыты и расширены, и я не могу найти чистый способ обновить положение элементов управления для любого случая.

Приложение: Как вы думаете, это хорошая практика, используя UserControl в этом случае, или я могу использовать Template или StackPanel?

Как вы это реализуете?

ответ

0

Лучшая практика для этого решения заключается в использовании ViewModel вместо UserControl и привязки его в вашей сетке. вы можете использовать DependencyProperty и INotifyPropertyChanged для двусторонней привязки в ViewModel. Значит, вы не будете предупреждать об утилизации ....

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