This is a migrated thread and some comments may be shown as answers.

ConvertBack value always null in SettingsPaneView.EditorValue

0 Answers 90 Views
Diagram
This is a migrated thread and some comments may be shown as answers.
Davoud
Top achievements
Rank 1
Davoud asked on 12 Apr 2020, 04:09 PM

I made a class inherited raddiagramshape class and add "Forename" and "ForenameHorizontalAlignment" to this.

I changed template of SettingsPaneView and I added Horizontal alignment for shape, you can see this in image below.

My template add is 

<ListBox Grid.Column="0"
         ScrollViewer.HorizontalScrollBarVisibility="Disabled"
         ScrollViewer.VerticalScrollBarVisibility="Disabled"
         HorizontalAlignment="Left"
         extensions:SettingsPaneView.EditorPropertyName="ForenameHorizontalAlignment"
         extensions:SettingsPaneView.EditorItemType="Shapes, Connections"
         extensions:SettingsPaneView.EditorValue="{Binding Path=SelectedIndex, RelativeSource={RelativeSource Self}, Mode=TwoWay, Converter={StaticResource HorizontalAlignmentConverter}}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel IsItemsHost="True" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBoxItem>
        <!--Left Alignment-->
        <Path Width="26" Height="26" Stretch="Fill" Data="M 0,4L 24,4 M 0,10L 12,10 M 0,16L 24,16 M 0,22L 12,22 M 0,28L 24,28 M 0,0L 32,0L 32,32L 0,32L 0,0 Z" Stroke="Black" StrokeThickness="1.5"/>
    </ListBoxItem>
    <ListBoxItem>
        <!--Center Alignment-->
        <Path Width="26" Height="26" Stretch="Fill" Data="M 4,4L 28,4 M 10,10L 22,10 M 4,16L 28,16 M 10,22L 22,22 M 4,28L 28,28 M 0,0L 32,0L 32,32L 0,32L 0,0 Z" Stroke="Black" StrokeThickness="1.5"/>
    </ListBoxItem>
    <ListBoxItem>
        <!--Right Alignment-->
        <Path Width="26" Height="26" Stretch="Fill" Data="M 8,4L 32,4 M 19,10L 32,10 M 8,16L 32,16 M 19,22L 32,22 M 8,28L 32,28 M 0,0L 32,0L 32,32L 0,32L 0,0 Z" Stroke="Black" StrokeThickness="1.5"/>
    </ListBoxItem>
</ListBox>

 

and HorizontalAlignmentConverter is

[ValueConversion(typeof(System.Windows.HorizontalAlignment), typeof(int))]
public class HorizontalAlignmentConverter : IValueConverter
{
    #region IValueConverter Members
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value != null)
        {
            switch ((int)value)
            {
                case 0: return System.Windows.HorizontalAlignment.Left;
                case 2: return System.Windows.HorizontalAlignment.Right;
                default: return System.Windows.HorizontalAlignment.Center;
            }
        }
        return System.Windows.HorizontalAlignment.Center;
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null) return 1;
        System.Windows.HorizontalAlignment _value = (System.Windows.HorizontalAlignment)value;
        switch (_value)
        {
            case System.Windows.HorizontalAlignment.Left: return 0;
            case System.Windows.HorizontalAlignment.Right: return 2;
            default: return 1;
        }
    }
    #endregion
}

 

when I add a shape into diagram and open settingpane I can change horizontal alignment of forename(for example change to left) but when again open sttingpane it show me center. I checked it and I see always Convertback value is null.?

how can I fix it?

 

No answers yet. Maybe you can help?

Tags
Diagram
Asked by
Davoud
Top achievements
Rank 1
Share this question
or