2016-12-13 108 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

相關問題