2016-12-13 62 views
0

在我的控制器部分中,我有以下代码的文件。在控制器之间传递单选按钮

板 - > DashboardBlock.xaml

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

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

现在,当这个复选框被选中(true或false)我想以下发生:

控制器:

SiteStatus - > SiteStatusControl.xaml

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

我知道如何做到这一点,如果是在同一个控制器。但是,正如你所看到的,这些都在单独的控制器中。而且我不知道如何在彼此之间传递数值。

编辑:

这是页面的样子:

How the page looks like

编辑2:

这是控制器的外观:

How the controller looks

回答

1

如果您要从仪表板调用'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> 

FilterEnum

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;   
    } 
} 

这不是最干净的东西,但我认为它会给你一个如何做到这一点的想法。

+0

刚做了一个编辑。这就是页面现在的样子。当我检查我的仪表板控制器上的复选框。我想让SiteStatus控制器进行调整。 – Mitch

+0

请添加一些信息。你是否正在讨论订阅在RadioButton更改时触发的事件?或者如果组中的RadioButton选择已经改变?或者你是否在积极致电'GetSiteStatus'? –

+0

在SiteStatus控制器中,我使用GetSiteStatus类来从我的数据库中获取结果。现在,我想过滤用户输入的结果。因此,如果用户检查仪表板控制器中的单选按钮,我希望GetSiteStatus查看它是否被选中。 – Mitch

相关问题