簡體   English   中英

如何將屬性與DataGrid中的Checkbox綁定?

[英]How to bind a property with Checkbox in DataGrid?

我有一個簡單的類,我希望能夠將屬性與DataGrid綁定。

public class Param : INotifyPropertyChanged
{
    private bool isParamSelected;
    public bool Select
    {
        get { return isParamSelected; }
        set
        {
            isParamSelected = value;
            NotifyPropertyChanged();
        }
    }
    public string Name { get; set; }
    public string Description { get; set; }
    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

這是我的.xaml代碼:我需要將復選框作為第一列。 我不使用DataGridCheckBoxColumn,因為它需要單擊兩次才能選中一個框。 通過一個簡單的CheckBox,我可以單擊一下進行檢查。

<DataGrid Name="AccumGrid" AutoGenerateColumns="False">
    <DataGrid.Columns >
        <DataGridTemplateColumn Header="Select">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding Path=Select, Mode=TwoWay}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
        <DataGridTextColumn Header="Description" Binding="{Binding Description}"/>
    </DataGrid.Columns>
</DataGrid>

我的問題是,當我將Select屬性綁定到CheckBox <CheckBox IsChecked="{Binding Path=Select, Mode=TwoWay}" /> ,它無法識別它並給我“無法解析符號'Select'”。 我可以選中該框,但它不會更新“選擇”屬性。 我有一個帶有少量對象的Params AccumList參數列表。 我也做AccumGrid.ItemSources = AccumList我在這里AccumGrid.ItemSources = AccumList什么?

我已經嘗試過<DataGridCheckBoxColumn Header="Select" Binding="{Binding Path=Select, Mode=TwoWay}"/> ,它可以正常運行,但是如前所述,我不想雙擊復選框。

將綁定的UpdateSourceTrigger設置為PropertyChanged (請注意, Mode="TwoWay"是多余的,因為這是此屬性的默認值):

<CheckBox IsChecked="{Binding Select, UpdateSourceTrigger=PropertyChanged}" />

但是,不確定為什么這樣做是必需的,因為CheckBox.IsCheckedProperty依賴項屬性的FrameworkPropertyMetadataDefaultUpdateSourceTrigger值已經是PropertyChanged

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM