0

私のリストボックス 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. その単一のリストボックス項目のテキストブロックのテキストのみを変更したいですか?

これどうやってするの?私にお知らせください。

4

1 に答える 1

0

ビューが変更された場合 (たとえば、DataTemplateそのプロパティ ( 、 など) を表示する他のコントロールLabelで変更された場合TextBox) は、アプリケーションが壊れる可能性があるため、この種のプログラミング方法は避ける必要があります。

他に解決策がない場合もあります。

ここで答えを参照してください: http://msdn.microsoft.com/en-us/library/bb613579.aspx

于 2012-09-12T09:39:30.017 に答える