Подсказка для ячейки DataGrid на основе данных столбца - PullRequest
3 голосов
/ 19 ноября 2010

В моем приложении я попытался реализовать всплывающую подсказку, которая покажет мне некоторые ошибки в сетке данных на основе текста столбца dataGrid.Для примера у меня есть 4 столбца с текстовыми полями для ввода некоторых данных, и если данные в некотором столбце не соответствуют правилу или если некоторые из них пусты в последнем 4-м столбце, я должен показать всплывающую подсказку с текстом пояснения.

<WpfToolkit:DataGridTemplateColumn Width="0.02*" IsReadOnly="True">
          <WpfToolkit:DataGridTemplateColumn.CellStyle>
            <Style TargetType="{x:Type WpfToolkit:DataGridCell}" BasedOn="{StaticResource TransparentCellSelection}">
              <Style.Triggers>

                <DataTrigger Value="1">
                  <DataTrigger.Binding>
                    <MultiBinding Converter="{StaticResource DataGridRowToolTipConverter}">
                      <Binding Path="IsRequired" />
                      <Binding Path="InputColumns.Count" />
                      <Binding Path="HasDefaultValue" />
                      <Binding Path="HasOverwritingValue" />
                      <Binding Path="MappingType" />
                      <Binding Path="SourceColumnMappings" />
                      <Binding Path="ColumnStatus" />
                    </MultiBinding>
                  </DataTrigger.Binding>
                  <Setter Property="ToolTip" Value="Translation mapping is incomplete." />
                </DataTrigger>

                <DataTrigger Value="2">
                  <DataTrigger.Binding>
                    <MultiBinding Converter="{StaticResource DataGridRowToolTipConverter}">
                      <Binding Path="IsRequired" />
                      <Binding Path="InputColumns.Count"/>
                      <Binding Path="HasDefaultValue" />
                      <Binding Path="HasOverwritingValue" />
                      <Binding Path="MappingType" />
                      <Binding Path="SourceColumnMappings" />
                      <Binding Path="ColumnStatus" />
                    </MultiBinding>
                  </DataTrigger.Binding>
                  <Setter Property="ToolTip" Value="Overwriting Value overrides Mapping. Mapping and Default Value are ignored." />
                </DataTrigger>

                <DataTrigger Value="3">
                  <DataTrigger.Binding>
                    <MultiBinding Converter="{StaticResource DataGridRowToolTipConverter}">
                      <Binding Path="IsRequired" />
                      <Binding Path="InputColumns.Count" />
                      <Binding Path="HasDefaultValue" />
                      <Binding Path="HasOverwritingValue" />
                      <Binding Path="MappingType" />
                      <Binding Path="SourceColumnMappings" />
                      <Binding Path="ColumnStatus" />
                    </MultiBinding>
                  </DataTrigger.Binding>
                  <Setter Property="ToolTip" Value="Default Value cannot be set for empty Mapping. Please define Mapping or use Overwriting Value instead of Default Value." />
                </DataTrigger>

Кто-нибудь знает лучший способ сделать это?

...