Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取数据模板中的元素_C#_Silverlight_Xaml - Fatal编程技术网

C# 获取数据模板中的元素

C# 获取数据模板中的元素,c#,silverlight,xaml,C#,Silverlight,Xaml,我有一个下面的XAML,我需要在运行时从代码隐藏文件更改imageRemoveButton的可见性。我如何访问该按钮 <ItemsControl x:Name="ImagesItemsControl"> <ItemsControl.ItemTemplate> <DataTemplate> <Border BorderBrush="#ffdddddd" BorderTh

我有一个下面的XAML,我需要在运行时从代码隐藏文件更改
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中进行代码隐藏是一种非常糟糕的做法。模板应始终通过绑定获取值。