Другие флажки в разных строках отмечены, когда флажок установлен - PullRequest
0 голосов
/ 27 октября 2018

У меня есть сетка, и каждая строка (300 из них) состоит из «строка | строка | int | строка | проверка».Если, например, я нажимаю на флажок в строке 7, ничего необычного не происходит.Но если я щелкну другой флажок в другой строке, я могу получить 10 других строк с установленными флажками, но эти другие флажки не выполняют код, связанный с ними.

            <DataGridTemplateColumn Width="*" Header="Add">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>                           
                        <CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

1 Ответ

0 голосов
/ 27 октября 2018

Это потому, что визуальные ряды используются повторно.Вы можете установить <DataGrid EnableRowVirtualization="False"..., но это будет иметь огромное влияние на производительность, если будет много строк.Лучшее решение - использовать ViewModel для хранения состояния проверки.Затем привяжите значение к ViewModel <CheckBox IsChecked="{Binding MyBoolProperty}"...

. В вашей ViewModel вы можете вызывать свой метод при изменении свойства.

public class MyItem
{
    //.... other class info
    //TODO: Implement INotifyPropertyChanged

    private bool _MyBoolProperty = false;
    public bool MyBoolProperty
    {
        get
        {
            return _MyBoolProperty;
        }
        set
        {
            _MyBoolProperty = value;
            MyBoolPropertyChanged();
        }
    }

    private void MyBoolPropertyChanged()
    {
        //do something
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...