我有一個動態復選框,
private async void GetOffices()
{
string url = $"{baseurl}/get-offices";
var response = await httpservices.SendGetRequest(url);
for (int i = 0; i < response.Count; i )
{
Offices.Add(new Office() { id = (string)response[i]["id"], OfficeName = (string)response[i]["office_name"] });
}
}
我的 XAML 看起來像這樣:
<CollectionView ItemsSource="{Binding Offices}">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="viewmodel:Office" >
<Grid Padding="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Frame Grid.ColumnSpan="2" Padding="15" BackgroundColor="LightBlue" x:Name="OfficeSelection" CornerRadius="0">
<Grid Grid.ColumnSpan="2" RowDefinitions="Auto,Auto" ColumnDefinitions="40,*">
<CheckBox Grid.Column="0" x:Name="{Binding OfficeName}" CheckedChanged="OnCheckBoxCheckedChanged"/>
<Label TextTransform="Uppercase" Padding="10" FontSize="Default" Text="{Binding OfficeName}" Grid.Column="1"></Label>
</Grid>
</Frame>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
它會顯示如下:

我想要做的是,當我單擊繼續按鈕時,我可以獲得所有選中的復選框名稱或值,在這種情況下是:ADMISSION、CASHIER、PLENARY HALL 并將其存盤在陣列中?
這是我的按鈕 XAML:
<Button
Grid.Row="1"
Grid.Column="0"
Margin="5"
BorderWidth="0"
Command="{Binding GetSelectedOfficesCommand}"
CornerRadius="0"
Text="Continue" />
[RelayCommand]
public void GetSelectedOffices()
{
//CODe HERE
}
MAUI 相關的 MS Docs 讓我很困惑。任何人都可以給我一個代碼片段來解決這個問題?
uj5u.com熱心網友回復:
您應該向辦公室視圖模型添加一個布爾屬性并將其系結到復選框IsChecked。然后在您的GetSelectedOffices函式中,您只需按此屬性過濾:
var selectedNames = Offices.Where(x => x.IsSelected).Select(x => x.OfficeName);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/533324.html
標籤:C#xml虚拟机毛伊岛
上一篇:根據UWP中的型別選擇資料模板
下一篇:如何操作集合視圖項的資料或值?
