单选按钮-在WPF视图中显示两个带有数据的差异列表

时间:2018-08-14 06:58:51

标签: c# wpf radio-button

我在视图中有一些代码:

<StackPanel Orientation="Horizontal" Background="{StaticResource GrayBrush8}">
        <RadioButton Content="Radio1" />
        <RadioButton Content="Radio2" />         
    </StackPanel>
    <ct:DynamicFilterPanel Grid.Row="1" 
                           ItemsType="{x:Type db:RadioData1}"
                           DbContext="{Binding DataContext}"
                           FilterQuery="{Binding FilterQuery, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                           ChildCollectionsFilters="{Binding SubTypesFilter}"
                           WindowType="{x:Type mah:MetroWindow}"
                           />
    <ct:BDataGrid  Grid.Row="2" IsReadOnly="True" ItemsSource="{Binding Model.List}" SelectedItem="{Binding Model.SelectedItem}" />

我有一些带有数据以及列,模型和视图模型名称的类。 当我启动应用程序时,它将显示带有RadioData1数据的列。好。第一个单选按钮就是为此而设计的。但是,当我单击第二个单选按钮时,该如何显示带有RadioData2列的另一个列表。什么样的转换器?或我必须在此视图中进行的更改。

1 个答案:

答案 0 :(得分:0)

您必须编辑XAML

<StackPanel Orientation="Horizontal" Background="{StaticResource GrayBrush8}">
            <RadioButton Name="Radio1" Content="Radio1" DataContextChanged="RadioButton_DataContextChanged" />
            <RadioButton Name="Radio2" Content="Radio2" />
        </StackPanel>

和CS文件中

添加方法

private void RadioButton_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (Radio1.IsChecked==true)
            {
                //your Code
            }
            else
            {
                //your other code
            }
        }

您可以使用可见性显示或隐藏XAML中的内容

<Button Name="btn1" Visibility="Hidden" />

并像这样在您的CS文件中使用

if (Radio1.IsChecked==true)
            {
                               btn1.Visibility = Visibility.Visible;
            }