首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MatBlazor选择问题

MatBlazor选择问题
EN

Stack Overflow用户
提问于 2019-12-26 13:15:42
回答 3查看 2.8K关注 0票数 4

我的代码应该是这样的,但是它得到了空引用异常

代码语言:javascript
复制
 <MatSelect Label="Atık Tipi" @bind-Value="@SecilenAtikGrubu.GrupId" Style="width:100%">
      @foreach (var item in TumAtikTipleri)
     {
        <MatOption Value="@item.Id">@item.Deger1</MatOption>
     }
 </MatSelect>

但是当我像这样用的时候,它就起作用了。

代码语言:javascript
复制
  <select class="mdc-select__native-control" @bind="SecilenAtikGrubu.GrupId">
     @foreach (var item in TumAtikTipleri)
     {
         <option value="@item.Id">@item.Deger1</option>
     }
  </select>

绑定值类如下所示:(SecilenAtikGrubuTumAtikTipleri)

代码语言:javascript
复制
 public class GrupKodlari : KayitBilgisi
{
    [Key]
    public int Id { get; set; }
    public string Tur { get; set; }
    public string Isim { get; set; }
    public string Deger1 { get; set; }
    public string Deger2 { get; set; }
    public string Deger3 { get; set; }
    public int? GrupId { get; set; } 
    public virtual GrupKodlari Grup { get; set; }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-26 19:58:41

坏消息是,我已经检查过了,MatSelect无法绑定到可空类型。

现在是好消息,首先,您可以使用一个辅助属性作为解决方法,https://blazorfiddle.com/s/43zc364k

代码语言:javascript
复制
public int GrupIdAux
{
    set{
        GrupId = (value==0?(int?)null:value);
    }
    get {
        return (GrupId==null?0:GrupId.Value);
    }
}

第二个好消息: MatBlazor是一个开源项目。如果您需要使用可空类型,您可以使用可以改进MatSelect控制并发送一个PR。项目所有者可以接受贡献(例如,我写了NumericUpDown),如果您不能改进组件,您可以请人为您编写它,或者您可以在项目问题上发布关于新特性的请求。这看起来是个好主意,绑定可空对象是很棒的。

票数 7
EN

Stack Overflow用户

发布于 2021-02-20 00:39:57

@daniherrera可以将MatSelect绑定到可空类型。但是,您必须指定使用?接受可空类型。示例:

代码语言:javascript
复制
<MatSelect Label="Pick a Food Group" @bind-Value="@guidValue">
    <MatOption TValue="Guid?" Value="@(null)"></MatOption>
    <MatOption TValue="Guid?" Value="@(new Guid("20A82054-F493-4C7B-81A4-4F9A1EDD7C2E"))">Bread, Cereal, Rice, and Pasta</MatOption>
    <MatOption TValue="Guid?" Value="@(new Guid("4451642D-24F7-418F-8741-BA5089A1CC65"))">Vegetables</MatOption>
    <MatOption TValue="Guid?" Value="@(new Guid("5717DBBE-C205-4E33-9E07-892A51F64021"))">Fruit</MatOption>
</MatSelect>

<span>@guidValue</span>

@code
{
    Guid? guidValue = new Guid("20A82054-F493-4C7B-81A4-4F9A1EDD7C2E");
}

https://www.matblazor.com/Select#MatSelectGuid

使用int? Id并使用TValue="int?"标记您的MatOption

票数 1
EN

Stack Overflow用户

发布于 2021-11-10 18:06:38

我解决这个问题的方法是:

代码语言:javascript
复制
<MudSelect T="Genre?" Label="Genre Primary" @bind-Value="model.MainGenrePrimary" Variant="Variant.Outlined">
<MudSelectItem T="Genre?"></MudSelectItem>
@foreach (Genre item in Enum.GetValues(typeof(Genre)))
{
   <MudSelectItem T="Genre?" Value="@item">@item</MudSelectItem>
}
</MudSelect>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59489037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档