在我的mixingPage xaml文件中,我试图将标签的文本内容设置为一个值。(抽象类)和一个具有effectItem数组的效果。当我试图从effectItem中的数组获取数据时,问题发生了。从effect数组中检索数据工作正常。无论我尝试从effectItem数组中获取哪个数据,不管效果是否抽象。
mixingPage xaml代码:
<Label Grid.Column="0"
Text="{Binding Effects[0].EffectItems.Length}"
VerticalOptions="Center"
Margin="10,0" />
字符串
导航到此页面的代码:
Song song = new Song
{
Effects = new List<Effect>
{
new Equalizer
{
EffectItems = new[]
{
new EffectItem { Name = "Low", Min = 1, Max = 0, Value = 5 }
}
}
},
};
var mixingPage = new MixingPage();
mixingPage.BindingContext = song;
Navigation.PushAsync(mixingPage);
型
但它总是给出错误:
0>MixingPage.xaml: Error XamlC: Object reference not set to an instance of an object.
型
我正在使用.NET Maui 6.0
我希望沿着“{Binding Effects[0]. BindItems [0].Value}”行写一些东西,并返回存储在效果项中的值。
我试着从类中删除“抽象”,并将其作为一个独立的类使用,我试着以所有不同的方式初始化导航中的类,将数组改为列表。无论如何,它总是给出错误。
Edit我忘了指定你在歌曲中看到的Anchizer类是一个扩展Effect抽象类的类。
2条答案
按热度按时间nfg76nw01#
字符串
根据你上面发布的代码,我发现
Song
的数据结构应该是错误的。在示例化的类Song
内部创建类Equalizer
的对象是不合理的。如果类
Song.cs
的结构是这样的,就不会有错误。型
我们还需要在导航到页面
MixingPage
时更改数据,如下所示:型
eaf3rand2#
所以我想我找到了一种解决方法。我改变了Effect类,使其只有一个带有“category”字符串的字段,而不是属于效果的effectItem。这不是我希望它工作的方式,但我已经做了大约一个星期了,没有结果。