2014-09-28 46 views
0

我有兩個類由實體框架生成如下。我的需求取決於JobEntity類中的SystemEntity_ID,我想綁定ListView中複選框的IsChecked屬性。問題是,現在正在檢查所有複選框...請幫助..在列表視圖中的WPF複選框綁定

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; } 
    } 

} 

我的觀點,即主窗口。

<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; 
} 
+1

你想要一個int到一個屬性是一個布爾?那是對的嗎? – sexta13 2014-09-28 22:11:00

+0

你到底想要觸發一個複選框?你將它綁定到一個整數,我假設只要該整數不爲零,該框就會被檢查。如果您想根據特定值檢查該框,則需要使用值轉換器。 – 2014-09-28 23:04:17

+0

其實讓我們說在數據庫中我們有2,3,4然後我想2,3和4複選框被檢查,並沿同一行,如果任何檢查的變化可以說,用戶沒有選中2,然後我想要保存3,4到數據庫.. – nikhil 2014-09-29 00:09:09

回答

0

的問題是,您要爲空的INT綁定到一個布爾屬性。 如果你想要這個任何方式。你需要一個轉換器或數據觸發器。

由於我不知道什麼值會使複選框被選中,並且什麼值會使該複選框不被選中,我可以爲你編寫任何代碼。

希望這會有所幫助。

親切的問候

+0

如前所述,如果我在數據庫中有2,4個,那麼複選框2和4需要檢查,如果在視圖中發生任何更改,我需要將這些值存儲回數據庫。 。請幫助..如果我需要一個值轉換器,你可以請幫我代碼..我是新來的WPF .. – nikhil 2014-09-29 00:11:15