سؤال

ولدي نافذة مخصصة التي لها خاصيتين depencency: منطقية؟ ValidationStatus، وسلسلة ValidationMessage. الملزمة هذه الخصائص يعمل بشكل جيد ولكن لا يبدو الزناد يمكن تشغيلها عندما تتغير هذه القيم. ما أفعل الخطأ؟

<TextBlock x:Name="validationTextBox" 
    Grid.Row="1" 
    Grid.ColumnSpan="2" 
    Text="{Binding ElementName=_this, Path=ValidationMessage}"
    TextAlignment="Center"
    Background="Green">

    <TextBlock.Style>
      <Style>
        <Style.Triggers>
          <DataTrigger Value="False" Binding="{Binding ElementName=_this, Path=ValidationStatus}">
            <Setter Property="Panel.Background" Value="Red"/>
            <Setter Property="TextBox.Text" Value="Outer checkbox is not checked"/>
          </DataTrigger>
        </Style.Triggers>
      </Style>
    </TextBlock.Style>

</TextBlock>
هل كانت مفيدة؟

المحلول

ونمط المحددات لا تجاوز إعدادات السمة المحلية. لذلك يتم تجاهل القيم على الزناد البيانات لأنك حددت خصائص النص والخلفية على TextBlock. لعلاج هذه المشكلة تعيين القيم الافتراضية من هذه الخصائص في أسلوب كما هو مبين في التعليمات البرمجية التالية:

<TextBlock x:Name="validationTextBox" 
           Grid.Row="1" 
           Grid.ColumnSpan="2" 
           TextAlignment="Center">

<TextBlock.Style>
  <Style>
    <Setter Property="TextBox.Text" Value="{Binding ElementName=_this, Path=ValidationMessage}"/>
    <Setter Property="TextBox.Background" Value="Green"/>
    <Style.Triggers>
      <DataTrigger Value="False" Binding="{Binding ElementName=_this, Path=ValidationStatus}">
        <Setter Property="TextBox.Background" Value="Red"/>
        <Setter Property="TextBox.Text" Value="Outer checkbox is not checked"/>
      </DataTrigger>
    </Style.Triggers>
  </Style>
</TextBlock.Style>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top