2017-07-28 43 views
0

我有我的XamDataGrid内的复选框,如下所示: -绑定命令到复选框的onclick一个xamdatagrid里面WPF不工作

<igDp:UnboundField Width="1*" Label="{LocText props:Resources.GROUPLIST_SYNC}" BindingMode="TwoWay" BindingPath="IsSynchronise.Value" Converter="{StaticResource BoolToUMDirectoryFilter}" ConverterParameter="Enabled" ToolTip="{LocText props:Resources.GROUPLIST_SYNC}"> 
    <igDp:UnboundField.Settings> 
     <igDp:FieldSettings AllowEdit="True"> 
      <igDp:FieldSettings.LabelPresenterStyle > 
       <Style TargetType="igDp:LabelPresenter" BasedOn="{StaticResource GmsLabelStyle }"> 
        <Setter Property="AutomationProperties.AutomationId" Value="Group_SYNC"></Setter> 
       </Style> 
      </igDp:FieldSettings.LabelPresenterStyle> 
      <igDp:FieldSettings.CellValuePresenterStyle> 
       <Style TargetType="{x:Type igDp:CellValuePresenter}"> 
        <Setter Property="Margin" Value="2"></Setter> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="igDp:CellValuePresenter"> 
           <CheckBox Name="chkSynchronise" IsChecked="{Binding Path=DataContext.DataItem.IsSynchronise.Value, RelativeSource={ RelativeSource Mode=TemplatedParent}}" 
               HorizontalAlignment="Center" Command="{Binding SynchroniseGroups,RelativeSource={RelativeSource Mode=Self}}" HorizontalContentAlignment="Left" > 

           </CheckBox> 
           <!--<CheckBox IsChecked="{Binding Path=DataContext.DataItem.IsSynchronise.Value, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, RelativeSource={ RelativeSource Mode=TemplatedParent}}" 
                  Command="{Binding SynchroniseGroups,RelativeSource={RelativeSource Mode=Self}}" 
                  HorizontalAlignment="Center" HorizontalContentAlignment="Left" > 

           </CheckBox>--> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </igDp:FieldSettings.CellValuePresenterStyle> 
     </igDp:FieldSettings> 
    </igDp:UnboundField.Settings> 
</igDp:UnboundField> 

所以,我应该怎么绑定命令,以复选框点击工作,并获得ViewModel中选中和取消选中的行为?任何帮助将非常感激。提前致谢。

+0

为什么你需要使用命令?您已经将IsChecked属性绑定到某个东西,可以使用它的值更改来处理单击事件逻辑 – Bijington

+0

基本复选框没有此命令...更改self relativSource – GCamel

回答

0

起初我想补充一点:自infragistics版本14.2以来,未绑定的字段已经过时了(look here)

对于将布尔值绑定到XamDataGrid,我更喜欢使用CheckBoxField

类:

public class YourClass : NotificationObject 
{ 
    private bool _checkBoxValue; 

    public bool CheckboxValue 
    { 
     get 
     { 
      return this._checkBoxValue; 
     } 

     set 
     { 
      if (this._checkBoxValue != value) 
      { 
       this._checkBoxValue = value; 

       // Do something: Event, Method, ... 

       this.RaisePropertyChanged(nameof(this.CheckboxValue)); 
      } 
     } 
    } 
} 

XAML:

<igDp:FieldLayout> 
    <igDp:CheckBoxField BindingType="UseAlternateBinding" 
         Name="CheckerField" 
         Label="YourCheckerFieldLabel" 
         ToolTip="YourTooltip" 
         AlternateBinding="{Binding CheckboxValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
         /> 
</igDp:FieldLayout>