Я делаю Windows 8.1 для магазина приложений с Visual Studio 2015. У меня есть ListView с GridView, который работает хорошо. В некотором столбце есть TextBlock, а его Text - Bind, но я хотел изменить привязку с другим полем на Radio Button Checked. Ниже мой код.Change ListView Элемент привязки динамически
<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, которое я хотел бы изменить на событии, отмеченном переключателем.
Вы можете, конечно, определить привязки программна, но, может быть, проще было бы, если вы только что определили два отдельных TextBlocks, каждые из которых отличается привязка и просто изменение их видимости в зависимости от переключателя - тогда почти все можно определить в xaml. – Romasz
Это хорошая идея, но дело в том, что я не могу получить доступ к элементу управления внутри GridViewItem. Пожалуйста, помогите мне в этом – Milind
Что вы подразумеваете под «Я не могу получить доступ к контрулу внутри GridViewItem»? Кроме того - я не вижу переключатель в вашем коде. – Romasz