Сокращение повторяющегося кода в WPF для свойств не DependencyProperty - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь уменьшить это:

<CheckBox Content="K1" Grid.Row="0" Grid.Column="0">
    <CheckBox.IsChecked>
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="0,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K2" Grid.Row="0" Grid.Column="1">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="1,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K3" Grid.Row="0" Grid.Column="2">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="2,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K4" Grid.Row="0" Grid.Column="3">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="3,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K5" Grid.Row="0" Grid.Column="4">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="4,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K6" Grid.Row="0" Grid.Column="5">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="5,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K7" Grid.Row="0" Grid.Column="6">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="6,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="K8" Grid.Row="0" Grid.Column="7">
    <CheckBox.IsChecked >
        <local2:BcpBinding Path="RelayOutputMask" Converter="{StaticResource ByteBit2Bool}" ConverterParameters="7,Binding Path=RelayOutputMask" Mode="TwoWay" />
    </CheckBox.IsChecked>
</CheckBox>

Я попытался создать стиль и задать свойства «Путь», «Конвертер» и «Режим», но Visual Studio сообщает, что это не DependencyProperties.

Есть идеи?

Редактировать:

  1. Я понимаю, что могу удалить Grid.Row="0".

  2. Я использую конвертер ByteBit2Bool из этого проекта: https://www.codeproject.com/Articles/475550/A-bit-of-binding-MVVMing-bytes-bits-based-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...