DependencyProperty im Converter

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Eggord.

    DependencyProperty im Converter

    Hi ich bins mal wieder

    ich habe da ein Probem mit einem DependencyProperty von einem Converter. Ich habe ein Datagrid in dem ich eine TextBox und einen Slider in den Columns habe:
    Spoiler anzeigen

    Quellcode

    1. <DataGridTemplateColumn Header="Value" >
    2. <DataGridTemplateColumn.CellTemplate>
    3. <DataTemplate >
    4. <viblendEditors:SpinEditor SpinType="SpinValueBeforeDigit" Height="25" Value="{Binding Value, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged }" DecimalPlaces="2" >
    5. </viblendEditors:SpinEditor>
    6. </DataTemplate>
    7. </DataGridTemplateColumn.CellTemplate>
    8. </DataGridTemplateColumn>
    9. <DataGridTemplateColumn Header="">
    10. <DataGridTemplateColumn.CellTemplate >
    11. <DataTemplate>
    12. <Slider Margin="5" Width="150" Minimum="{Binding MinValueLog}" Maximum="{Binding MaxValueLog}" Value="{Binding Value, UpdateSourceTrigger=PropertyChanged,Converter={StaticResource LogCon} }" AutoToolTipPlacement="BottomRight" Ticks="{Binding LogTicks}" AutoToolTipPrecision="2" TickPlacement="BottomRight" IsSnapToTickEnabled="false" />
    13. </DataTemplate>
    14. </DataGridTemplateColumn.CellTemplate>
    15. </DataGridTemplateColumn>


    Beide Binden an Value. Value is ein Property eines Elements(Object Parameter) der Itemsource: Itemsource:

    Quellcode

    1. Dim _ParameterList As List(Of Parameter) = New List(Of Parameter)()


    Soweit so gut. Ich möchte aber den slider logarithmisch darstellen. Dazu muss ich aber zwei Werte übergeben: Value und MinValue(wegen der Berechnung). Beide Propertys von Parameter
    Mein erster Gedanke war MultiBinding. Das geht aber nicht, da auch ConvertBack den zweiten Wert benötigt.
    Also blieb nur noch ein DependencyProperty im Converter:
    Spoiler anzeigen

    Quellcode

    1. Public Shared MinValueProperty As DependencyProperty = DependencyProperty.Register("MinValue", GetType(Double), GetType(LogConverter))
    2. Public Property MinValue As Double
    3. Get
    4. Return DirectCast(GetValue(MinValueProperty), Double)
    5. End Get
    6. Set(value As Double)
    7. SetValue(MinValueProperty, value)
    8. End Set
    9. End Property


    Die Frage ist jetzt nur wie ich das DependencyProperty in den Xaml benutzt. Wie ich normales DependencyProperty benutze ist mir klar. Aber ich benutzt den Converter ja nicht so: <Converter ... /> sondern als Zusatz beim Value binding.
    Ich habe auch schon pobiert in den Resourcen, wo ich dem Converter einen key zuweiße, MinValue zu binden :

    Quellcode

    1. <local:LogConverter x:Key="LogCon" MinValue="{Binding MinValue}" />

    Das geht aber leider nicht.

    Ich hoffe mir kann jemand sagen wo und wie ich das DependencsProperty meines Convertes einem Wert zuweiße.
    ich verstehe das Problem nicht: Warum bindest du vom Slider nicht da MinValue ans MinValue des Parameters? Das Value hast du ja auch erfolgreich gebunden, odr?
    ah jetzt! MinValue muss im Converter landen.

    Also ich würde einen Converter schreiben, der nicht ein Value konvertiert, sondern den ganzen Parameter. Da sind ja alle Infos drin, die er zum konvertieren braucht.