У меня есть stati c collection Networks
:
public class NetworkSettings
{
private static List<NetworkSetting> _networks;
public static IList<NetworkSetting> Networks
{
get
{
if (_networks == null)
{
_networks = new List<NetworkSetting>
{
new NetworkSetting(),
...
...
}
}
return _networks;
}
}
Пока все хорошо. Этот класс инициализирован и действителен.
Когда я привязываюсь к нему из Picker с помощью:
[View]
<xmlns:models="clr-namespace:AppName.Models" />
<Picker ItemsSource="{x:Static models:NetworkSettings.Networks}"
SelectedItem="{Binding SelectedNetworkSetting, Mode=TwoWay}" />
, я получаю исключение NullReference (что-то связанное с ItemsSource).
Но если привязать к версии ViewModel те же данные:
[ViewModel]
public IList<NetworkSetting> NetworkSettings => Models.NetworkSettings.Networks;
[View]
<Picker ItemsSource="{Binding NetworkSettings}"
SelectedItem="{Binding SelectedNetworkSetting, Mode=TwoWay}" />
.. то все нормально. Какая разница? Почему он принимает привязку stati c?