Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF绑定复选框已选中到ItemsSource DataModel无法查看模型_Wpf_Checkbox_Datatemplate - Fatal编程技术网

WPF绑定复选框已选中到ItemsSource DataModel无法查看模型

WPF绑定复选框已选中到ItemsSource DataModel无法查看模型,wpf,checkbox,datatemplate,Wpf,Checkbox,Datatemplate,我有一个使用MVVM的WPF表单。在该WPF窗口中,我有一个对我的DataContext的引用: DataContext="{x:Static modelView:MasterAutoSyncModelView.Instance}" 此主自动同步模式视图包含一个可观察集合: public ObservableCollection<AutoSyncJob> Jobs { get; set; } 对于其IsActive属性设置为true的作业,列表应选中复选框 <ListVie

我有一个使用MVVM的WPF表单。在该WPF窗口中,我有一个对我的
DataContext
的引用:

DataContext="{x:Static modelView:MasterAutoSyncModelView.Instance}"
主自动同步模式视图
包含一个
可观察集合

public ObservableCollection<AutoSyncJob> Jobs { get; set; }
对于其
IsActive
属性设置为true的作业,列表应选中复选框

<ListView x:Name="lvJobs"
          HorizontalAlignment="Left" VerticalAlignment="Top"
          Height="628" Width="205"
          Margin="30,62,0,0"
          ItemsSource="{Binding Jobs}" 
          SelectedItem="{Binding SelectedJob, Mode=TwoWay}">
  <ListView.View>
    <GridView>
      <GridView.Columns>
        <GridViewColumn Header="Active" Width="50">
          <GridViewColumn.CellTemplate>
            <DataTemplate>
              <CheckBox IsChecked="{Binding IsActive, Mode=TwoWay}"/>
            </DataTemplate>
          </GridViewColumn.CellTemplate>
        </GridViewColumn>

        <GridViewColumn DisplayMemberBinding="{Binding JobName}" Header="Job Name" Width="150">
        </GridViewColumn>
      </GridView.Columns>
    </GridView>
  </ListView.View>
</ListView>
删除此投诉,但窗口在加载时仍没有选中的复选框

如何将
IsChecked
属性绑定到从Jobs ItemsSource绑定到该行的AutoSyncJob上的
IsActive
布尔值,以便根据基础模型显示为选中或未选中


第二个问题:选中或取消选中ListView中的活动框不会触发模型setter中的代码,即使我将模式设置为双向。因此,如果我取消选中或选中该框,我希望模型的
IsActive
属性会被修改。。。但是没有交流。我怀疑这是因为DataTemplate并没有真正绑定到模型项。

我已经尝试了您的代码,它对我有效。检查您的DataContex设置是否正确。 我认为您还没有DataContext,或者稍后(在检查绑定之前)将设置它。。
对不起我的英语;)

这可能是编译器的问题。别管它一会儿,回来后问题就自行解决了。上面发布了相同的代码(根本没有任何更改),它只是决定了自己的行为


很抱歉浪费了时间。

在这里也可以使用。datacontext对所有东西都很有用,除了复选框本身。如果代码对你有用,你介意发布代码吗?我想看看有什么不同。我所有的同事都远离我的机器,害怕它下一步会做什么。(多个同事看到它忽略了标志并将其保留为空)它现在可以正常工作,没有代码更改。也许。。。这是一个构建?我不确定。也许是用圣水驱魔机器。
<ListView x:Name="lvJobs"
          HorizontalAlignment="Left" VerticalAlignment="Top"
          Height="628" Width="205"
          Margin="30,62,0,0"
          ItemsSource="{Binding Jobs}" 
          SelectedItem="{Binding SelectedJob, Mode=TwoWay}">
  <ListView.View>
    <GridView>
      <GridView.Columns>
        <GridViewColumn Header="Active" Width="50">
          <GridViewColumn.CellTemplate>
            <DataTemplate>
              <CheckBox IsChecked="{Binding IsActive, Mode=TwoWay}"/>
            </DataTemplate>
          </GridViewColumn.CellTemplate>
        </GridViewColumn>

        <GridViewColumn DisplayMemberBinding="{Binding JobName}" Header="Job Name" Width="150">
        </GridViewColumn>
      </GridView.Columns>
    </GridView>
  </ListView.View>
</ListView>
<CheckBox IsChecked="{Binding Jobs/IsActive, Mode=TwoWay}"/>