我想解决的一般问题是,一个复选框只有一个datatemplate,然后我可以将它用于listview中的许多不同列(使用gridview)。在我所见过的所有示例中,每个绑定都创建了一个分离模板,这对我来说似乎有些过头了。
我一直试图通过创建gridviewcolumn将设置的附加属性来实现这一点。然后,我可以简单地为绑定到附加属性的复选框设置一个datatemplate。
我遇到的问题实际上是将复选框源设置为GridViewColumn。
下面是XAML:
<DataTemplate x:Key="CheckBoxTemplate">
<CheckBox IsChecked="{Binding Path=(ap:AttachedProperties.IsChecked),
RelativeSource={RelativeSource AncestorType={x:Type GridViewColumn}}}" />
</DataTemplate>
<GridView x:Key="MyGridView">
<GridViewColumn Header="CheckBox" CellTemplate="{StaticResource CheckBoxTemplate}" ap:AttachedProperties.IsChecked="{Binding Path=SomeValue}" />
</GridView>
附言。Attached属性工作正常,我已经将它直接附加到复选框,并使用Relationvesource自绑定并获得了值,但当我试图将它绑定到GridViewColumn上时,我没有得到快乐,事实上,我也无法绑定到GridViewColumn上的标头...
下面是一个仅用于显示行为的xaml示例:
<Window x:Class="WpfApplication3.MainWindow"
html" target="_blank">xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Width="525"
Height="350">
<Grid>
<ListView Name="listView1"
Width="479"
Height="287"
Margin="12,12,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<ListView.View>
<GridView>
<GridViewColumn Header="A Header">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Header, RelativeSource={RelativeSource AncestorType={x:Type GridViewColumn}}}" />
<TextBlock Text="Visible row" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListViewItem />
<ListViewItem />
</ListView>
</Grid>
</Window>
在这样的场景下,我希望看到“一个标题”就在每个“可见行”文本的上方
我已经检查了snoop,这是因为GridColumnHeader不在GridRows所在的VisualTree中。我的解决方案是使用ElementName并将其绑定到Header属性。相当简单,更干净和可读性。
<ListView Name="listView1"
Width="479"
Height="287"
Margin="12,12,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<ListView.View>
<GridView>
<GridViewColumn Header="A Header" x:Name="HeaderOne">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding ElementName=HeaderOne,Path=Header}" />
<TextBlock Text="Visible row" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListViewItem />
<ListViewItem />
</ListView>
我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?
在我的XAML中: 我的gridviewcolumn的可见性现在应该取决于我的集合项的“isVisible”的值。那件事可能吗?
最好的办法是什么?根据显示的数据,我希望绑定到MyText1或MyText2。我怎么做“开关”?
GridViewColumnExt是从GridViewColumn继承并添加可见性属性的类。 您可能会看到,我的ListView的ItemsSource被设置为寄存器ObservableCollection。Register类有一个名为vis的bool类型的属性。对于TextBox来说,这一切都很好,但是从GridViewColumnExt don来看,我认为我无法到达集合并绑定到特定的对象。 我
我得到了这个错误 属性内的内插已被删除。改用v-bind或冒号速记。例如,代替
假设我有一个非常大的单元格网格,我想添加数据行和数据集合值,并从模型绑定。如何从angular2(Dart中的beta0)绑定数据行。 绑定的数据行= " {{boundVal}}”似乎并不 例如。