我有一个ObservableCollection<ControlMachine>
,其中每个ControlMachine
都是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 :(得分:0)
此解决方案的最佳做法是使用ViewModel而不是UserControl并将其绑定到网格中。 您可以在ViewModel中使用DependencyProperty和INotifyPropertyChanged进行双向绑定。 因此,您不会警告处理......