У меня есть 2 класса, созданных Entity Framework следующим образом. Мое требование зависит от SystemEntity_ID в классе JobEntity, я хочу связать свойство IsChecked этого флажка в списке. Проблема в том, прямо сейчас все флажки проверяются ... Пожалуйста, помогите ..wpf checkbox binding in listview
public partial class JobEntity
{
public int JobEntity_ID { get; set; }
public int Job_ID { get; set; }
public Nullable<int> SystemEntity_ID { get; set; }
public string EntityMigrationStatus { get; set; }
}
public partial class sp_SelectEntities_Result
{
public Nullable<int> Project_ID { get; set; }
public Nullable<int> Site_ID { get; set; }
public int SystemEntity_ID { get; set; }
public string EntityDesc { get; set; }
}
Ниже мой ViewModel класс:
public class EntityViewModel
{
private List<sp_SelectEntities_Result> entitylist;
private ObservableCollection<sp_SelectEntities_Result> _ObCollection;
private EntityDbContext db;
List<int> Selectedvalues = new List<int>();
public EntityViewModel()
{
db = new EntityDbContext();
entitylist = db.sp_SelectEntities().ToList();
convert();
}
public void convert()
{
_ObCollection = new ObservableCollection<sp_SelectEntities_Result>(entitylist);
}
public ObservableCollection<sp_SelectEntities_Result> obcollection
{
get { return _ObCollection; }
set { _ObCollection = value; }
}
}
мой взгляд, т.е. MainWindow.
<ListView x:Name="lstentities" ItemsSource="{Binding obcollection}" Height="250" VerticalAlignment="Top">
<ListView.View>
<GridView>
<GridViewColumn Header="Selected">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chk" IsChecked="{Binding SystemEntity_ID}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding EntityDesc}" Header="Entity" />
</GridView>
</ListView.View>
</ListView>
и в mainwindow.cs
public MainWindow()
{
InitializeComponent();
EntityViewModel ev = new EntityViewModel();
this.DataContext = ev;
}
Вы хотите бинг int для свойства, которое является булевым? Это верно? – sexta13
Что именно вы ожидаете вызвать флажок? Вы привязываете его к целому числу, я бы предположил, что поле будет проверяться, если целое число отличное от нуля. Если вы хотите, чтобы флажок был установлен на основе определенных значений, вам необходимо использовать преобразователь значений. –
На самом деле давайте скажем, что в базе данных у нас 2,3,4, тогда я хочу отмечать 2, 3 и 4 флажка и по одной и той же строке, если любые проверенные изменения позволяют сказать, что пользователь снял флажок 2, затем я хочу сохранить 3,4 в базу данных. – nikhil