IgbCombo で選択されている値を取得したい場合は、JavaScript 側で IgbCombo の描画要素である igc-combo を取り出してください。igc-combo の value が選択されている値です。
(※C#コードでの取得は2023年7月現在未対応です。但し、Ignite UI for Blazor バージョン 23.1 以降の場合、「IgbCombo – 双方向データバインディングする方法 」で紹介している方法にて双方向データバインディングを実装することで、C#コード側での選択されている値の追跡と取得が可能となります。)
コード例
ComboComponent.razor
@implements IAsyncDisposable
@inject PrefectureDataService PrefectureDS
@inject IJSRuntime JS
<h3>ComboComponent</h3>
<div>
<button @onclick="OnClickAsync">コンボの値を取得する</button>
@ComboValues
</div>
@if (PrefectureData == null)
{
<div>
<span>Loading...</span>
</div>
}
else
{
<div @ref="ComboContainerRef">
<IgbCombo Data="PrefectureData"
DisplayKey="@nameof(Prefecture.PrefectureName)"
ValueKey="@nameof(Prefecture.PrefectureCode)"/>
</div>
}
@code {
private IJSObjectReference? JSModule;
private object[]? PrefectureData = null;
private ElementReference? ComboContainerRef;
private String ComboValues = "";
protected override async Task OnInitializedAsync()
{
this.PrefectureData = await PrefectureDS.GetPrefectures();
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
this.JSModule ??= await this.JS.InvokeAsync<IJSObjectReference>("import", "./Components/ComboComponent.razor.js");
}
}
private async Task OnClickAsync()
{
if(this.JSModule != null)
{
this.ComboValues = await this.JSModule.InvokeAsync<string>("getComboValuesScript", this.ComboContainerRef);
}
}
async ValueTask IAsyncDisposable.DisposeAsync()
{
if (JSModule is not null)
{
await JSModule.DisposeAsync();
}
}
}
ComboComponent.razor.js
export const getComboValuesScript = async (containerElement) => {
const igcCombo = containerElement.querySelector("igc-combo");
return igcCombo.value;
}
実行結果

サンプル
Pingback: IgbCombo – 双方向データバインディングする方法 – INFRAGISTICS ナレッジベース
Pingback: IgbCombo – 双方向データバインディングする方法 [v.23.1.72 以降] – INFRAGISTICS ナレッジベース