在控制器之间传递单选按钮值

Pass radio button value between controller

在我的控制器部分,我有以下文件和以下代码。

Dashboard -> DashboardBlock.xaml

在这里我有一个这样的复选框:

<stackpanel>
    <RadioButton x:Name="test" Content="Checkbox" />
</StackPanel>

现在,当这个复选框被选中(是或否)时,我希望发生以下情况:

控制器:

SiteStatus -> SiteStatusControl.xaml

private void GetSiteStatus()
{
    if (checkbox == true) 
    {
        //Do something
    }
}

如果它在同一个控制器中,我知道该怎么做。然而,正如您所看到的,它们位于不同的控制器中。而且我不知道如何在彼此之间传递值。

编辑:

页面是这样的:

编辑 2:

控制器的外观如下:

如果您从仪表板调用“GetSiteStatus()”,只需将“checkbox.Checked”作为参数传递。 ´GetSiteStatus(checkbox.Checked)´

private void GetSiteStatus(bool checked)
{
    if (checked == true) 
    {
        //Do something
    }
}

编辑:

所以如果我理解你。

在DashboardBlock.xaml

<StackPanel>
    <RadioButton x:Name="filter1" Content="Filter 1 Checkbox"
                 CheckedChanged="FilterSelectionChanged"/> 
    <RadioButton x:Name="filter2" Content="Filter 2 Checkbox"
                 CheckedChanged="FilterSelectionChanged"/> 
    <RadioButton x:Name="filter3" Content="Filter 1 Checkbox"
                 CheckedChanged="FilterSelectionChanged"/> 
</StackPanel>

过滤器枚举

public enum Filter{ Filter1, Filter2, Filter3 }

仪表板

public void FilterSelectionChanged(object sender, EventArgs e)
{
    var radioButton = (RadioButton)sender;
    if(radioButton.Name == "filter1")
    {
        siteStatusControl.UpdateFilter(Filter.Filter1);
    } else if (radioButton.Name == "filter2")
    {
        siteStatusController.UpdateFilter(Filter.Filter2); 
    }else if (radioButton.Name == "filter3")
    {
        siteStatusControl.UpdateFilter(Filter.Filter3); 
    }
}

在 SiteStatusControl 中

public void UpdateFilter(Filter filter)
{
    switch(filter)
    {
        case Filter.Filter1:
            //Do Something
            break;
        case Filter.Filter2:
            //Do Something
            break;
        case Filter.Filter3:
            //Do Something
            break;           
    }
}

这不是最干净的东西,但我认为它会让您了解如何做到这一点。