【发布时间】:2015-11-18 00:10:18
【问题描述】:
我正在使用 Visual Studio 2015 为应用商店制作 Windows 8.1。我的 ListView 和 GridView 运行良好。在某些列中有 TextBlock 并且它的 Text 是 Bind 但我想在 Radio Button Checked 上更改具有不同字段的绑定。下面是我的代码。
<ListView Name="lvData" Margin="5,0" HorizontalAlignment="Stretch" Grid.Row="2" BorderBrush="Black"
BorderThickness="1" Foreground="#000" VerticalAlignment="Center">
<ListView.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<GridViewHeaderItem Grid.Column="0" x:Uid="Number" Style="{StaticResource GridViewHeader}" />
<GridViewHeaderItem Grid.Column="1" x:Uid="_Dept" Style="{StaticResource GridViewHeader}" />
<GridViewHeaderItem Grid.Column="2" x:Uid="Arr" Style="{StaticResource GridViewHeader}" />
<GridViewHeaderItem Grid.Column="3" x:Uid="CurrentStatus" Style="{StaticResource GridViewHeader}" />
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<GridViewItem Grid.Column="0" Style="{StaticResource GridViewItem}" Content="{Binding Number}"/>
<GridViewItem Grid.Column="1" Style="{StaticResource GridViewItem}">
<StackPanel>
<TextBlock x:Name="DepTime" Text="{Binding DeptTime}" TextWrapping="Wrap" MaxWidth="65"/>
<TextBlock Text="" TextWrapping="Wrap"/>
<TextBlock x:Uid="Actual" TextWrapping="Wrap" MaxWidth="65" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding DeptStn}" Foreground="SkyBlue" TextWrapping="Wrap" MaxWidth="65" HorizontalAlignment="Center"/>
</StackPanel>
</GridViewItem>
<GridViewItem Grid.Column="2" Style="{StaticResource GridViewItem}">
<StackPanel>
<TextBlock x:Name="ArrTime" Text="{Binding ArrTime}" TextWrapping="Wrap" MaxWidth="65"/>
<TextBlock Text="" TextWrapping="Wrap"/>
<TextBlock x:Uid="Actual" TextWrapping="Wrap" MaxWidth="65" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding ArrivCode}" Foreground="SkyBlue" TextWrapping="Wrap" MaxWidth="65" HorizontalAlignment="Center"/>
</StackPanel>
</GridViewItem>
<GridViewItem Grid.Column="3" Style="{StaticResource GridViewItem}" Foreground="{Binding Color}" >
<TextBlock Text="{Binding CurrentStatus}" TextWrapping="Wrap" MaxWidth="60" HorizontalAlignment="Center"/>
</GridViewItem>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在上面的代码列索引 1 和 2 中,我想在单选按钮选中事件上更改 TextBlock 文本绑定。
【问题讨论】:
-
您当然可以以编程方式定义绑定,但如果您刚刚定义了两个单独的 TextBlock,每个 TextBlock 具有不同的绑定并根据单选按钮更改它们的可见性,这可能会更容易 - 然后几乎所有内容都可以定义在xml中。
-
这是个好主意,但我无法访问 GridViewItem 内的控件。请你帮我解决这个问题
-
“我无法访问 GridViewItem 中的控件”是什么意思?另外 - 我在您的代码中看不到单选按钮。
-
您可以看到控件(即 TextBlock)在 DataTemplete 下,因为我无法直接在代码中看到控件
-
那么后面还有更多代码。您可以分享一个小型示例项目吗?如果你真的想在后面的代码中定义绑定,你也可以look here。
标签: c# listview silverlight windows-phone-8.1