C# 获取数据模板中的元素
我有一个下面的XAML,我需要在运行时从代码隐藏文件更改C# 获取数据模板中的元素,c#,silverlight,xaml,C#,Silverlight,Xaml,我有一个下面的XAML,我需要在运行时从代码隐藏文件更改imageRemoveButton的可见性。我如何访问该按钮 <ItemsControl x:Name="ImagesItemsControl"> <ItemsControl.ItemTemplate> <DataTemplate> <Border BorderBrush="#ffdddddd" BorderTh
imageRemoveButton
的可见性。我如何访问该按钮
<ItemsControl x:Name="ImagesItemsControl">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#ffdddddd"
BorderThickness="0,0,0,1">
<Grid Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="15" />
<ColumnDefinition />
<ColumnDefinition Width="20" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="1"
VerticalAlignment="Center">
<TextBlock Text="{Binding Name}"
TextWrapping="Wrap" />
</Grid>
<Button Grid.Column="3"
Width="20"
Height="20"
Content="X"
Template="{StaticResource ButtonAddTab}"
Style="{StaticResource ButtonWizard}"
Tag="{Binding}"
x:Name="imageRemoveButton"
Click="ImageRemoveButton_Click" />
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
模板中不能按名称引用元素。模板生成的代码隐藏/设计器属性不匹配 您希望将模板中控件的可见性绑定到数据项的属性。这意味着您需要向数据项添加属性。您能提供您的数据项的更多详细信息吗?如果属性是布尔值,请使用VisibilityConvertor(在该站点上一角钱)
将模板视为希望始终从绑定中提取设置,而不是从外部将设置填充到模板中。尝试使用
源
绑定到将管理按钮可见性状态的类。将属性添加到所有数据项会很痛苦,但如果需要根据数据项的属性设置按钮的可见性,则可能需要添加属性。根据标准MVVM模式,您可以从C#控制按钮的可见性。如果您需要按钮的特定实例,可以向其添加加载的事件处理程序,并相应地将其缓存。使用按钮上加载的事件将对按钮的引用保存在cs文件中。如果需要更改可见性,请使用此引用。您可能需要使用数据模板样式和触发器查看:-1:2???这不仅含糊不清而且不正确,而且将单个模板控件硬连接到Silverlight中进行代码隐藏是一种非常糟糕的做法。模板应始终通过绑定获取值。