我有一个Datagrid。在那,我在
中采用了图像控制 <DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Image name:image1 source="">
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
现在,我想要隐藏此图像&#34; image1&#34;并在需要时使用此属性显示
image1.Visibility = Visibility.Hidden;
和image1.Visibility = Visibility.Visible;
但问题是,我无法阅读&#34; image1&#34;完成此操作后面的代码中的图像控件的名称。
有人可以帮助我做什么是最好的方法,以及如何从datagrid中读取代码中的名称。
提前致谢
答案 0 :(得分:0)
您无法直接找到儿童控制。下面的示例将帮助您从Datagrid中查找子控件及其值。 http://www.c-sharpcorner.com/UploadFile/8911c4/how-to-find-control-and-its-value-form-datagrid-in-wpf/
答案 1 :(得分:0)
您可以使用Converter来解决此问题
在XAML的资源部分
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
添加图片
Visibility="{Binding BoolValue, Converter={StaticResource BooleanToVisibilityConverter}}"
<强>转换器强>
public class BooleanToVisibilityConverter : IValueConverter
{
private object GetVisibility(object value)
{
if (!(value is bool))
return Visibility.Collapsed;
bool objValue = (bool)value;
if (objValue)
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
public object Convert(object value, Type targetType, object parameter, string language)
{
return GetVisibility(value);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}