【问题标题】:How to set the text of textblock present inside a datatemplate of a listbox from c# codebehind?如何从 c# 代码隐藏设置列表框的数据模板中存在的文本块的文本?
【发布时间】:2012-09-12 09:08:45
【问题描述】:

我的列表框 XAML 如下所示:

<ListBox x:Name="lstbxbProducts" SelectionChanged="lstbxbProducts_SelectionChanged_1" HorizontalAlignment="Left" Height="547" Margin="0,221,0,0" VerticalAlignment="Top" Width="1044" RenderTransformOrigin="0.600000023841858,0.5">        
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <StackPanel Width="80" VerticalAlignment="Center" Orientation="Horizontal">
                    <TextBlock Text="{Binding prdnum}" VerticalAlignment="Center" HorizontalAlignment="Left" ></TextBlock>
                    <TextBlock Text="  -" VerticalAlignment="Center" HorizontalAlignment="Left" ></TextBlock>
                </StackPanel>
                <StackPanel Width="400">
                    <TextBlock Text="{Binding prddsc}" VerticalAlignment="Center"  HorizontalAlignment="Left" ></TextBlock>
                </StackPanel>
                <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Width="180">
                    <StackPanel>
                        <TextBlock Text="{Binding um_cod}" Name="txtblkUmcode" VerticalAlignment="Center"  HorizontalAlignment="Left" ></TextBlock>
                    </StackPanel>
                    <StackPanel Width="20"></StackPanel>
                    <StackPanel Width="20">
                        <Image Source="/Images/Arrowselection.png" Tapped="Image_Tapped_1" VerticalAlignment="Center" ></Image>
                    </StackPanel>
                </StackPanel>

                <StackPanel Width="180">
                    <TextBlock Text="{Binding prcby_prc}" VerticalAlignment="Center" HorizontalAlignment="Center" ></TextBlock>
                </StackPanel>
                <StackPanel Width="100">
                    <TextBox Text="{Binding stdordqty, Mode=TwoWay}" VerticalAlignment="Center" TextAlignment="Center"   HorizontalAlignment="Right" ></TextBox>
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我想以这种方式从 c# codebhind 设置我的列表框中的 Name="txtblkUmcode" 的文本,但没有运气:

TextBlock txtBlk = new TextBlock();
txtBlk =  lstbxbProducts.FindName("txtblkUmcode") as TextBlock;
txtBlk .Text = "test";

请告诉我该怎么做:

  1. 在我的列表框的数据模板中设置该文本块的文本?
  2. 我只想更改单个列表框项的文本块的文本?

我该怎么做?请告诉我。

【问题讨论】:

    标签: wpf silverlight xaml microsoft-metro


    【解决方案1】:

    您必须避免这种编程实践,因为如果视图发生更改 - 例如,出现修改后的 DataTemplate 以及显示该属性的其他控件(LabelTextBox 等) - 可能会破坏您的应用程序。

    有时没有其他解决方案。

    在此处查看答案:http://msdn.microsoft.com/en-us/library/bb613579.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多