Я пытаюсь привязать контекст данных и тег к элементам представления списка. Мой список содержит название отдела. Таким образом, пользователь может выбрать любой отдел.
Проблема в том, что когда я пытаюсь проверить 16-й элемент списка, я не получаю контекст данных (который содержит идентификатор отдела) и тег (которые содержат название отдела). Он отлично работает для 16-го элемента выше (есть ли проблема с прокруткой? Потому что после 15-го элемента мне нужно прокрутить вниз, чтобы проверить элемент)
<ListView Width="480" Name="LVDepartment" ItemsSource="{Binding AllDepartmetnList}"
DataFetchSize="1"
IncrementalLoadingTrigger="Edge"
IncrementalLoadingThreshold="5" Margin="9,57,-3,57" >
<ListView.ItemTemplate>
<DataTemplate>
<Grid BorderThickness="0 0 0 1" BorderBrush="#E1E1E1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="13*"/>
</Grid.ColumnDefinitions>
<CheckBox Width="15" DataContext="{Binding id}" Tag="{Binding name}" Style="{StaticResource CheckBoxStyle1}" HorizontalAlignment="Left" VerticalAlignment="Top" Name="CheckBoxItem" Checked="CheckBoxItem_Checked" Unchecked="CheckBoxItem_Unchecked" Loaded="CheckBoxItem_Loaded" Grid.Column="0" ></CheckBox>
<TextBlock Width="465" Padding="20 0 0 0" Foreground="#333333" FontFamily="{StaticResource inventoryRegularFont}" FontSize="14px" HorizontalTextAlignment="Left" AccessKey="{Binding id}" HorizontalAlignment="Left" VerticalAlignment="Center" Name="TextblockItem" Grid.Column="1" Text="{Binding name}"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
код: =
public async void GetDepartmentList()
{
try
{
Uri requestUriForDept = new Uri(APIServer + "Department/GetDepartments");
var formattedJsonDataForDept = new
{
};
string jsonDataForDept = "";
jsonDataForDept = Newtonsoft.Json.JsonConvert.SerializeObject(formattedJsonDataForDept);
var objClintForUsers1 = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage responseForDept = await objClintForUsers1.PostAsync(requestUriForDept,
new StringContent(jsonDataForDept, System.Text.Encoding.UTF8, "application/json"));
string responJsonDataForDept = await responseForDept.Content.ReadAsStringAsync();
dynamic respondedDataForDept = JsonConvert.DeserializeObject(responJsonDataForDept.ToString());
if ((string)respondedDataForDept["status"] == "Success")
{
// Dept list initialization
DepartmentList = new ObservableCollection<DepartmentData> { };
foreach (var Dept in respondedDataForDept["deptList"])
{
string DeptName = Dept.deptName;
int DeptId = Dept.deptid;
AllDepartmetnList.Add(new DepartmentData(DeptId, DeptName) { });
}
LVDepartment.ItemsSource = AllDepartmetnList;
}
}
catch(Exception ex)
{
ex.Message.ToString();
}
}
после установки флажка: =
private void CheckBoxItem_Checked(object sender, RoutedEventArgs e)
{
CheckBox ch = (CheckBox)sender;
int DeptId = Convert.ToInt32(ch.DataContext); // here i am getting the datacontext zero if item is more than 16
}
Я не получаю вышеприведенный список данных, выбранный контекст данных элемента. После флажка установите флажок.