首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的GridViewColumn绑定问题

简单的GridViewColumn绑定问题
EN

Stack Overflow用户
提问于 2011-04-20 00:52:35
回答 2查看 449关注 0票数 0

我有一个带有几个GridViewColumnListView。其中一列我显示了层的可见性,我绑定了图标和不透明度,但我不确定如何将其绑定到一个名为IsVisible的属性,以便每当单击该列中的项时,它都会切换IsVisible布尔值。

你有什么建议吗?

代码语言:javascript
复制
<GridViewColumn Width="20">
    <GridViewColumnHeader Content="X" />
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Image Width="18"
                Height="18"
                Source="{Binding VisibleIcon}"
                        Opacity="{Binding VisibleOpacity}"
                        />
            </StackPanel>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

此外,VisibleOpacity为图标定义了Opacity,但我觉得这不是一个好方法,因为我必须为此目的创建此属性。有没有一种方法可以在xaml中以内联方式完成此操作?可能是这样的:

代码语言:javascript
复制
Opacity = (this.IsVisible) ? 1 : 0.5;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-20 01:14:39

编辑: ok,所以我认为现在应该很好了..

仍然假设你的集合是一个集合:

代码语言:javascript
复制
public class Effect : INotifyPropertychanged
{
    //Some properties


    private bool isVisible;
    public bool IsVisible
    {
        get { return isVisible;}
        set { isVisible=value;//plus raise propertychanged notification}
    }      
}

然后,我认为将图像单击传播到您的code属性和图像不透明度的最简单方法是将图标包装在切换按钮中。这是我用过并测试过的代码。只需将值替换为您的值,并将其放入您的数据模板中,这一次应该可以很好地工作:

代码语言:javascript
复制
<ToggleButton x:Name="tgBtn" Height="20" Width="20" IsChecked="{Binding IsVisible}" 
              BorderThickness="0" Background="Transparent" >
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Image Width="18"
                           Height="18"                 
                           Source="C:\USERS\thumbnail.jpeg">
                            <Image.Style>
                                <Style TargetType="{x:Type Image}">
                                    <Setter Property="Opacity" Value="1"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding ElementName=tgBtn, Path=IsChecked}" Value="false">
                                            <Setter Property="Opacity" Value="0.5"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Image.Style>
                        </Image>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ToggleButton.Style>
</ToggleButton>
票数 2
EN

Stack Overflow用户

发布于 2011-04-20 01:13:35

不知道是否需要更改不透明度值。您需要绑定的是图像的可见性属性,并使用一个转换器将布尔IsVisible转换为可见性枚举值。

请参阅http://www.jeff.wilcox.name/2008/07/visibility-type-converter/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5719870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档