有没有办法直接绑定到元素对象本身。
我目前正在展示和隐藏元素,但我更愿意完全删除它们,因为它们永远不需要使用。
有没有办法对元素进行数据绑定,然后根据特定项目的需要删除它?
例如,我们说我有参与者参加对话,== 1,== 2或> 3
<Border Visibility="{Binding ParticipantImagesOneVisibility}" Background="Transparent" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5">
<Image Source="{Binding Participants[0].image.thumbnail_link}" Width="62" Height="62" Stretch="UniformToFill"/>
</Border>
<Border Visibility="{Binding ParticipantImagesTwoVisibility}" Background="Transparent" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="31" />
<ColumnDefinition Width="31"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding Participants[0].image.thumbnail_link}" Width="31" Height="62" Stretch="Fill"/>
<Image Grid.Column="1" Source="{Binding Participants[1].image.thumbnail_link}" Width="31" Height="62" Stretch="Fill"/>
</Grid>
</Border>
<Border Visibility="{Binding ParticipantImagesThreeVisibility}" Background="Transparent" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5">
<Grid Width="62" Height="62">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="31" />
<ColumnDefinition Width="31"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="31" />
<RowDefinition Height="31"/>
</Grid.RowDefinitions>
<Image Grid.Column="0" Grid.Row="0" Source="{Binding Participants[0].image.thumbnail_link}" Width="31" Height="31" Stretch="Fill"/>
<Image Grid.Column="0" Grid.Row="1" Source="{Binding Participants[1].image.thumbnail_link}" Width="31" Height="31" Stretch="Fill"/>
<Image Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Source="{Binding Participants[2].image.thumbnail_link}" Width="31" Height="62" Stretch="Fill"/>
</Grid>
</Border>
有没有一种方法可以动态生成它们(我从未使用过自定义控件),或者只是在我来到它们时删除它们?而不是仅仅隐藏它们(这是daymmmmm slow maynnnnn)?
我特别谈到:
{Binding ParticipantImagesOneVisibility}
等。
答案 0 :(得分:1)
我会使用ItemsControl,ListBox或ListView。对项目使用DataTemplate。现在将ItemsSource绑定到所有这些参与者的ObservableCollection。
现在,在您的业务层中,您有参与者及其列表。如果参与者退出,则应从ObservableCollection中删除参与者。 UI将自动更新,因为它是ObservableCollection。如果添加参与者,则类似。