Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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
C# 绑定未在命令中更新_C#_Wpf_Data Binding - Fatal编程技术网

C# 绑定未在命令中更新

C# 绑定未在命令中更新,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个列表框,其中包含一些“应用程序”对象。 可以启动或停止“应用程序”对象 对于列表框中的每个元素,我有两个按钮,第一个按钮用于启动应用程序,第二个按钮用于停止应用程序 但是,当我点击开始按钮时,它并没有正确地更新绑定“IsRunning”。 当我在应用程序内部单击时,命令的CanExecute将重新计算,尽管有“CommandManager.InvalidateRequestSuggested();” 因此,我的开始按钮保持启用状态,我的停止按钮从不显示 <ListBox Grid.

我有一个列表框,其中包含一些“应用程序”对象。 可以启动或停止“应用程序”对象

对于列表框中的每个元素,我有两个按钮,第一个按钮用于启动应用程序,第二个按钮用于停止应用程序

但是,当我点击开始按钮时,它并没有正确地更新绑定“IsRunning”。 当我在应用程序内部单击时,命令的CanExecute将重新计算,尽管有“CommandManager.InvalidateRequestSuggested();”

因此,我的开始按钮保持启用状态,我的停止按钮从不显示

<ListBox Grid.Row="1"  ItemsSource="{Binding Applications}" Grid.ColumnSpan="3" BorderThickness="0" Background="#FFE8E8E8" HorizontalContentAlignment="Stretch">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Button Margin="5,0" Content = "Start" 
              Command="{Binding StartCommand}"
              Visibility="{Binding IsRunning, Converter={Converters:InvertedBoolToVisibilityConverter}}"/>
      <Button Margin="5,0"  Content = "Stop" 
              Command="{Binding StopCommand}"
              Visibility="{Binding IsRunning, Converter={Converters:BoolToVisibilityConverter}}"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

我从未见过这样的人。您需要在某处创建它们,然后使用
StaticResource
/
DynamicResource
引用它们:

<Window.Resources>
  <Converters:InvertedBoolToVisibilityConverter x:Key="invBoolConv"/>
</Window.Resources>

<Button Margin="5,0" Content = "Start" 
        Command="{Binding StartCommand}"
        Visibility="{Binding IsRunning, Converter={StaticResource invBoolConv}"/>


愚蠢的问题:您是否在命令回调中更新
IsRunning
?您是否更新了
m_IsRunning
?是的,IsRunning已更新,因为在另一个视图中,所有内容都已正确更新…天哪!对不起,这是正确的。。。在另一个线程中,我将m_设置为正在运行,而不是正在运行。。。
<Window.Resources>
  <Converters:InvertedBoolToVisibilityConverter x:Key="invBoolConv"/>
</Window.Resources>

<Button Margin="5,0" Content = "Start" 
        Command="{Binding StartCommand}"
        Visibility="{Binding IsRunning, Converter={StaticResource invBoolConv}"/>