Я получаю своих пользователей из API и помещаю их в ObservableCollection элементов Tuple (нужны 2 значения bool для полей CheckBox IsSelected, которые я использую позже)
private ObservableCollection<Tuple<UserDetails, bool, bool>> _users;
public ObservableCollection<Tuple<UserDetails, bool, bool>> Users
{
get { return _users; }
set
{
_users = value;
OnPropertyRaised("Users");
}
}
public async Task GetUsers()
{
var tmp = await watchlistHelper.GetUsersAsync(); //API call
if (tmp != null)
{
Users = new ObservableCollection<Tuple<UserDetails, bool, bool>>();
foreach (UserDetails details in tmp.Content)
{
Users.Add(new Tuple<UserDetails, bool, bool>(details, false, false));
}
}
}
Когда я пытаюсь использовать это без привязки к значениям bool, например:
<ListBox Grid.Row="1" ItemsSource="{Binding Users, ElementName=uc}" SelectionMode="Multiple">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="2" Text="{Binding Item1.UserName }" VerticalAlignment="Center" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Все отображается правильно (только UserName), но когда я пытаюсь привязать его и использовать значения bool, моя программа просто вылетает
<ListBox Grid.Column="2" Grid.Row="1" ItemsSource="{Binding Users, ElementName=uc}" HorizontalContentAlignment="Stretch" SelectionMode="Multiple">
<ListBox.ItemTemplate >
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition SharedSizeGroup="write"/>
<ColumnDefinition SharedSizeGroup="manage"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="2" Text="{Binding Item1.UserName}" VerticalAlignment="Center"/>
<CheckBox Margin="2" IsChecked="{Binding Item2}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1"/>
<CheckBox Margin="2" IsChecked="{Binding Item3}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="2"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Если я жестко запрограммировал значения CheckBox в xaml или не использую их - он работает, как и предполагалось, поэтому, должно быть, проблема с bool в привязке кортежа к CheckBox, но я просто не могу понять, что могло его вызвать.