【问题标题】:In Wpf GridView how can i bind a control to another inside one Item在 Wpf GridView 中,我如何将控件绑定到一个 Item 中的另一个控件
【发布时间】:2016-12-01 08:06:54
【问题描述】:

我想根据复选框隐藏/显示项目中的文本框。但就在两个控件都在的那个 Item 中。

我有 BoolToVis 转换器。

 <ListView Name="lst1" ItemsSource="{Binding Fields}">
    <ListView.View>
        <GridView>
            <GridView.Columns>
                <GridViewColumn>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox  IsChecked="False" Name="chbVis"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                    <GridViewColumn.Header>
                        <TextBlock Text="Visibility"></TextBlock>
                    </GridViewColumn.Header>
                </GridViewColumn>
                <GridViewColumn>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Path=Name}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                    <GridViewColumn.Header>
                        <TextBlock Text="Field" Visibility="{Binding Path=IsChecked, ElementName=chbVis, Converter={StaticResource BoolToVis}}"></TextBlock>
                    </GridViewColumn.Header>
                </GridViewColumn>
             </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>

【问题讨论】:

    标签: c# wpf gridview binding


    【解决方案1】:

    我解决了这个问题,通过在 Field 类中创建一个属性来绑定复选框。

    public bool fieldVis;
        public bool FieldVis
        {
            get { return fieldVis; }
            set
            {
                fieldVis= value;
                NotifyPropertyChanged();
            }
        }
    

    然后 xaml 看起来像:

     <ListView Name="lst1" ItemsSource="{Binding Fields}">
        <ListView.View>
            <GridView>
                <GridView.Columns>
                    <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox  IsChecked="{Binding FieldVis}" Name="chbVis"/>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                        <GridViewColumn.Header>
                            <TextBlock Text="Visibility"></TextBlock>
                        </GridViewColumn.Header>
                    </GridViewColumn>
                    <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding Path=Name}"/>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                        <GridViewColumn.Header>
                            <TextBlock Text="Field" Visibility="{Binding fieldVis, Converter={StaticResource BoolToVis}}"></TextBlock>
                        </GridViewColumn.Header>
                    </GridViewColumn>
                 </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>
    

    它就像魅力一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 2012-03-24
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多