Mindscape WPF Elements使用教程:錯誤管理

原文轉載自慧都控件網:http://www.evget.com/zh-CN/Info/catalog/18232.html

提高錯誤管理

Mindscape WPF Elements中現在又優化了錯誤管理,可以通過定製屬性網格來提供更多的信息的錯誤處理。

修改自定義編輯器

Mindscape WPF Elements中提供了一個自定義編輯屬性,你可以創建你的錯誤管理的用戶界面來作爲你模版的一部分,下面的代碼顯示“英尺和尺寸”的編輯器使用tooltip和彈出窗口用來顯示驗證錯誤。

附加驗證的編輯器

<DataTemplate x:Key='FeetAndInchesEditorWithValidation'>
    <ms:TextBox BorderThickness='0' Text='{Binding Value, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource FeetAndInchesConverter}, ValidatesOnExceptions=True, ValidatesOnDataErrors=True}' Style='{StaticResource TextBoxStandardErrorHandling}'>
    </ms:TextBox>
  </DataTemplate>

常見樣式的文本處理驗證錯誤

<Style TargetType='{x:Type ms:TextBox}' x:Key='TextBoxStandardErrorHandling'>
    <Setter Property='Control.Template'>
      <Setter.Value>
        <ControlTemplate TargetType='{x:Type ms:TextBox}'>
          <DockPanel>
            <ToggleButton x:Name='ErrorPlaceholder' Style='{StaticResource ErrorPopupTriggerStyle}'/>
            <Popup PlacementTarget='{Binding ElementName=ErrorPlaceholder}' AllowsTransparency='True' StaysOpen='False' Placement='Bottom' IsOpen='{Binding ElementName=ErrorPlaceholder, Path=IsChecked}'>
              <ItemsControl ItemTemplate='{StaticResource ValidationErrorMessage}' ItemsSource='{Binding RelativeSource={RelativeSource AncestorType={x:Type ms:TextBox}}, Path=(Validation.Errors)}'/>
            </Popup>
            <ScrollViewer x:Name='PART_ContentHost'/>
          </DockPanel>
          <ControlTemplate.Triggers>
            <Trigger Property='Validation.HasError' Value='True'>
              <Setter TargetName='ErrorPlaceholder' Property='Visibility' Value='Visible'/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Setter Property='Validation.ErrorTemplate'>
      <Setter.Value>
        <ControlTemplate>
          <DockPanel>
            <Ellipse Margin='0,0,6,0' ToolTip='{Binding ElementName=EditorHolder, Path=AdornedElement.(Validation.Errors)[0], Converter={StaticResource InnerExceptionExtractor}}' Width='8' Height='8' Fill='Red'/>
            <AdornedElementPlaceholder x:Name='EditorHolder'/>
          </DockPanel>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

內置的編輯器樣式

對於內置編輯器的屬性,可以使用樣式通過屬性編輯器來創建你的錯誤處理的用戶界面。

還可以定義錯誤處理用戶接口,通過內置編輯器的所有實例來應用,而不是在屬性和屬性的基礎上,使用BuiltInEditorStyles屬性。這個例子展示瞭如何添加錯誤處理到文本編輯器,值得注意FirstName和Surname着兩種屬性會自動的得到新的樣式,儘管沒有自定義風格的屬性編輯器分配給這兩個屬性。

添加錯誤處理到內置文本編輯器

<ms:PropertyGrid.BuiltInEditorStyles>
        <ms:BuiltInEditorStyleCollection>
          <ms:BuiltInEditorStyle EditorKey='{x:Static ms:PropertyGrid.SimpleTextEditorKey}' Style='{StaticResource TextBoxStandardErrorHandling}'/>
        </ms:BuiltInEditorStyleCollection>
      </ms:PropertyGrid.BuiltInEditorStyles>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章