如何将文本框的长度绑定到文本块?

费德里科

我需要帮助来绑定WPF上的某些内容。我有此文本框列,显示了Datagrid中属性的值。

<DataGridTemplateColumn Header="Value" Width="150">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>               
            <TextBox Width="150" Name="PropertyTextBox" Text="{Binding Path=Property.Value.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding Path=Property, Converter={StaticResource isSimpleJPropertyConverter}, Mode=OneWay}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

我需要在另一列中显示文本框的实际长度,并且如果更改文本框的文本,则长度也必须更改。

<DataGridTemplateColumn Header="Leng" Width="150">
<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Width="150" Text="{Binding Path=Text.Length, ElementName=PropertyTextBox, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

为什么这不起作用?有小费吗?我该怎么做?

编辑:完整的xaml

<Window x:Class="WpfInterceptor.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Name="this"
    xmlns:local="clr-namespace:WpfInterceptor"
    Title="MainWindow" Height="728" Width="755" Loaded="Window_Loaded">
<Window.Resources>

    <!--<local:JPropertyConverter x:Key="jPropertyConverter" />-->
    <local:IsSimpleJPropertyConverter x:Key="isSimpleJPropertyConverter" />
    <local:LengthConverter x:Key="lengthConverter" />

</Window.Resources>
<Grid DataContext="{Binding ElementName=this}">

    <Button x:Name="btn6" Content="Vai a Host" HorizontalAlignment="Left" Margin="662,172,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
    <TextBox x:Name="txt1" HorizontalAlignment="Left" Height="157" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="727"/>
    <RadioButton x:Name="rb2" Content="MID" HorizontalAlignment="Left" Margin="305,175,0,0" VerticalAlignment="Top" Checked="rb2_Checked"/>
    <RadioButton x:Name="rb1" Content="JSON" HorizontalAlignment="Left" Margin="246,175,0,0" VerticalAlignment="Top" Checked="rb1_Checked"/>
    <Button x:Name="btn5" Content="Clear" HorizontalAlignment="Left" Margin="582,172,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>

   <StackPanel>
    <DataGrid x:Name="dg" HorizontalAlignment="Left" Margin="10,199,0,0" VerticalAlignment="Top" Height="46" Width="727" />

        <DataGrid x:Name="dg2" ItemsSource="{Binding Path=Properties}"  AutoGenerateColumns="False" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.IsDeferredScrollingEnabled="True" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible" Height="350" IsEnabled="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=NomeCampo}" Header="Nome Campo" IsReadOnly="True" />
                <DataGridTextColumn Binding="{Binding Path=Lunghezza}" Header="Lunghezza" IsReadOnly="True"  Width="50" />

                <DataGridTemplateColumn Header="Valore" Width="150">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Canvas Background="Azure">
                               <!-- <TextBox Name="PropertyTextBox" Text="{Binding Path=Property.Value.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  /> seconda-->
                                <TextBox Width="150" Name="PropertyTextBox" Text="{Binding Path=Property.Value.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding Path=Property, Converter={StaticResource isSimpleJPropertyConverter}, Mode=OneWay}" />
                                <!--<TextBox Width="250"  Text="{Binding Path=Property, Converter={StaticResource jPropertyConverter},  Mode=TwoWay, UpdateSourceTrigger=PropertyChanged , Delay=500}" /> prima versione-->
                            </Canvas>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <!--<DataGridTextColumn Header="Lunghezza2" IsReadOnly="True"  Width="50" Binding="{Binding Path=Property.Value.Value.Length, UpdateSourceTrigger=PropertyChanged, Mode=OneWay, Converter={StaticResource lengthConverter}}"  />-->
                <DataGridTextColumn Header="Lunghezza2" IsReadOnly="True" Width="50" Binding="{Binding Path=Lunghezza2, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" />


                <DataGridTemplateColumn Header="Leng" Width="150">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Width="150" Text="{Binding Path=PropertyTextBox.Text.Length, ElementName=PropertyTextBox, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

            </DataGrid.Columns>
        </DataGrid>

    </StackPanel>

    <Button x:Name="btn2" Content="Mostra Campi" HorizontalAlignment="Left" Margin="90,172,0,0" VerticalAlignment="Top" Width="91" Click="Button_Click_2"/>
    <Button x:Name="btn3" Content="Apri file" HorizontalAlignment="Left" Margin="10,172,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_3"/>
    <Button x:Name="btn4" Content="Accetta Modifiche" HorizontalAlignment="Left" Margin="406,172,0,0" VerticalAlignment="Top" Width="171" Click="Button_Click_4" IsEnabled="False"/>

</Grid>

罗希特·瓦茨

DataGrid列不在同一可视树中。因此,您不能使用进行绑定ElementName

与模型对象的属性绑定,因为它已与TextBox绑定TwoWay:

<DataTemplate>
    <TextBlock Width="150" Text="{Binding Path=Property.Value.Value.Length}" />
</DataTemplate>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将文本框绑定到类Property

来自分类Dev

如何将文本框对象绑定到ViewModel

来自分类Dev

如何将文本框的文本与文件内容绑定?

来自分类Dev

如何将文本框文本绑定到集合的“当前”项目

来自分类Dev

如何将Winform文本框绑定到类属性?

来自分类Dev

如何将文本框中的字体大小绑定到数据源?

来自分类Dev

如何将文本框绑定到WPF中的类的字段?

来自分类Dev

如何将简单的字符串值绑定到文本框?

来自分类Dev

如何将2个文本框绑定到一个属性?

来自分类Dev

如何将列表绑定到ItemsControl中的文本框

来自分类Dev

如何将文本框绑定到MS Access中子窗体的链接子字段?

来自分类Dev

如何将ProgressBar值绑定到ResourceDictionary中的文本框?

来自分类Dev

将文本框绑定到属性

来自分类Dev

将文本框绑定到字典

来自分类Dev

将文本框绑定到属性

来自分类Dev

如何将焦点设置到dx文本框?

来自分类Dev

如何将selectedItem从不同的列表框绑定到一个文本框?

来自分类Dev

如何将文本块与属性绑定

来自分类Dev

如何将文本框文本与其他类属性绑定?

来自分类Dev

如何将文本框绑定到datetime字段,但仅显示其日期部分(在ASP.MVC中)?

来自分类Dev

如何将文本框绑定到datetime字段,但仅显示其日期部分(在ASP.MVC中)?

来自分类Dev

如何将文本框绑定到不在数据上下文类中的类

来自分类Dev

实体框架和 VB.Net - 如何将文本框绑定到 EF 并保持更改?

来自分类Dev

如何将文本框中的文本复制到 datagridview1 的 1 列?

来自分类Dev

如何将对象属性绑定到 angular2 中的文本框

来自分类Dev

TwoWay将DateTime绑定到文本框-仅年份

来自分类Dev

将多个文本框值绑定到单个属性

来自分类Dev

将文本框绑定到字典的键

来自分类Dev

将List <string>绑定到文本框

Related 相关文章

  1. 1

    如何将文本框绑定到类Property

  2. 2

    如何将文本框对象绑定到ViewModel

  3. 3

    如何将文本框的文本与文件内容绑定?

  4. 4

    如何将文本框文本绑定到集合的“当前”项目

  5. 5

    如何将Winform文本框绑定到类属性?

  6. 6

    如何将文本框中的字体大小绑定到数据源?

  7. 7

    如何将文本框绑定到WPF中的类的字段?

  8. 8

    如何将简单的字符串值绑定到文本框?

  9. 9

    如何将2个文本框绑定到一个属性?

  10. 10

    如何将列表绑定到ItemsControl中的文本框

  11. 11

    如何将文本框绑定到MS Access中子窗体的链接子字段?

  12. 12

    如何将ProgressBar值绑定到ResourceDictionary中的文本框?

  13. 13

    将文本框绑定到属性

  14. 14

    将文本框绑定到字典

  15. 15

    将文本框绑定到属性

  16. 16

    如何将焦点设置到dx文本框?

  17. 17

    如何将selectedItem从不同的列表框绑定到一个文本框?

  18. 18

    如何将文本块与属性绑定

  19. 19

    如何将文本框文本与其他类属性绑定?

  20. 20

    如何将文本框绑定到datetime字段,但仅显示其日期部分(在ASP.MVC中)?

  21. 21

    如何将文本框绑定到datetime字段,但仅显示其日期部分(在ASP.MVC中)?

  22. 22

    如何将文本框绑定到不在数据上下文类中的类

  23. 23

    实体框架和 VB.Net - 如何将文本框绑定到 EF 并保持更改?

  24. 24

    如何将文本框中的文本复制到 datagridview1 的 1 列?

  25. 25

    如何将对象属性绑定到 angular2 中的文本框

  26. 26

    TwoWay将DateTime绑定到文本框-仅年份

  27. 27

    将多个文本框值绑定到单个属性

  28. 28

    将文本框绑定到字典的键

  29. 29

    将List <string>绑定到文本框

热门标签

归档