6

DataGridTemplateColumn 内にあるリストボックスの空の領域にある項目の下を 2 回クリックするか、既にフォーカスされているときに 1 回クリックすると、上記のエラー メッセージが表示されます

私は何を間違っていますか?

これは私のコードです:

<DataGridTemplateColumn Width="0.3*" Header="Attachments">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <StackPanel Orientation="Vertical">
                <Button>Add</Button>
                <Button>Delete</Button>
                <ListBox Name="itemListBox" BorderThickness="0" ItemsSource="{Binding Attachments}" >                                   
                    <ListBox.ItemTemplate>
                        <DataTemplate>                                           
                            <StackPanel Orientation="Vertical" Margin="5">                                                
                                <TextBlock Text="{Binding DocumentFilename}" />
                            </StackPanel>                                            
                        </DataTemplate>
                    </ListBox.ItemTemplate>                                     
                </ListBox>
            </StackPanel>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> 

「myPhotos.png」項目エントリの下をクリックした画像について考えてみましょう: (ソース: 666kb.com )代替テキスト

編集:このエラーは、ツールチップを介して XAML でも既に表示されていますが、そのエラー ツールチップは表示されていません...

4

5 に答える 5

6

興味深いことに、これは私にも起こりました。ジョシュが言ったことは私に考えさせました。セルを選択してもう一度選択すると、私の場合とあなたの場合で指定されていない CellEditingTemplate をロードしようとし、Visual/Visual3d 例外がスローされるようです。

DataGridTemplateColumnIsReadOnly ="True"を指定して修正しました。セル テンプレートに読み込まれた TextBoxes/DatePicker/Checkboxes などを使用して一括挿入を行っているため、とにかく CellEditingTemplate は使用しません。

于 2012-10-19T13:48:53.230 に答える
3

Run の Text プロパティにバインディングが設定された、Run が埋め込まれた Hyperlink を持つカスタム列を持つ Datagrid でも同じ問題がありました。実行テキストバインディングが明示的にBindingMode.OneWayに設定されていない場合、このエラーが発生しました。明示的に設定すると、問題が解決しました。これだけでなく、データグリッド内の任意の列を編集するときに例外が発生したことに注意してください。

于 2015-12-17T01:33:57.830 に答える
1

データ グリッドの列を編集すると、同じエラーが発生します。ここにxaml列:

 <DataGridTextColumn Header="Precio Unit." Binding="{Binding UnitPrice,StringFormat=0.00}" Width="Auto" MinWidth="115" />

しかし、別の列でエラーが発生しました。ここにxaml:

                        <DataGridTemplateColumn Header="Descripción" MinWidth="600" Width="Auto" IsReadOnly="True" >
                            <DataGridTemplateColumn.CellTemplate >
                                <DataTemplate >
                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                                        <TextBlock Text="{Binding FixedName, Converter={StaticResource toUpperConverter}}" Background="Transparent" 
                                                VerticalAlignment="Center" Margin="0"/>
                                        <TextBlock Margin="5,0,0,0" Foreground="#FFCB6A6A" FontWeight="Normal">
                                            <Run Text="( Stock "/>
                                            <Run Text="{Binding Stock}"/>
                                            <Run Text=" )"/>
                                        </TextBlock>
                                    </StackPanel>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>

明示的に指定すると、エラーが消えます。

<Run Text = "{Binding Stock, Mode = OneWay}" />
于 2016-01-28T03:32:41.107 に答える
0

このエラーはBlendで頻繁に発生しますが、DataGridでは実行時に発生しません。

アプリケーションをコンパイルするか(私の場合はVSの場合)、BlendにDLLのリロードを許可すると、修正されることがわかりました。また、列を再配置すると、それ自体が更新されるようになります。でも大きな痛み!

于 2010-09-15T06:47:10.890 に答える