c# - text binding xamarin



Vinculación de ElementName dentro de un DataTemplate (1)

Estoy intentando enlazar una propiedad que depende de un control dentro de la misma DataTemplate .

Para ilustrar:

<DataTemplate>
    <StackPanel Orientation="Horizontal">
        <ComboBox x:Name="ComboList"
                  ItemsSource="{Binding StatTypes}"
                  SelectedItem="{Binding SelectedStatType, Mode=TwoWay, FallbackValue='Select a type'}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Text}"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

        <TextBox Grid.Column="1" MinWidth="40" Margin="5">
            <TextBox.Text>
                <Binding Path="StatValue">
                    <Binding.Converter>
                        <converter:PercentageConverter SelectedStatType="{Binding ElementName=ComboList, Path=SelectedItem}" />
                    </Binding.Converter>
                </Binding>
            </TextBox.Text>
        </TextBox>
    </StackPanel>
</DataTemplate>

Pero la propiedad en el PercentageConverter nunca se establece a través de esto y no veo por qué. ¿Es este un problema de alcance de nombres? Si es así, pensé que esto no importaría ya que está en la misma DataTemplate Si no, ¿qué estoy haciendo mal?


Es probable que este sea un problema del visor de nombres, el enlace no es un elemento de marco, ningún objeto dentro de él no compartirá el microscopio externo, ni el enlace en ningún árbol, por lo que los enlaces de origen relativos también deben fallar.

Puedes intentar usar x:Reference lugar, usa un mecanismo diferente:

{Binding SelectedItem, Source={x:Reference ComboList}}




data-binding