เปลี่ยนค่าของการกำหนดการขึ้นแก่กันทรัพย์สิน programmatically

0

คำถาม

ฉันอยากจะเปลี่ยนค่าของการกำหนดการขึ้นแก่กันทรัพย์สิน programmatically.

นี่คือของฉัน XAML:

<Window.Resources>
      <ResourceDictionary>
         <Style
            x:Key="TreeViewItemStyle"
            TargetType="TreeViewItem">    
            <Style.Triggers>
               <Trigger
                  Property="local:ColorHelper.IsColor"
                  Value="True" >
               <Setter
                  Property="Foreground"
                  Value="{Binding Color}" />
               </Trigger>
               <Trigger
                  Property="local:ColorHelper.IsColor"
                  Value="False" >
               <Setter
                  Property="Foreground"
                  Value="Black" />
               </Trigger>
            </Style.Triggers>
           </Style>
      </ResourceDictionary>
   </Window.Resources>

ผมอยากให้เรื่องนี้รูปแบบที่จะถูกปรับใช้จะเป็น treeview

<TreeView
           HorizontalAlignment="Stretch"
           Margin="15,65,15,0"
           x:Name="treeView1"
           VerticalAlignment="Stretch"
           ItemContainerStyle="{StaticResource TreeViewItemStyle}"
           ItemTemplate="{StaticResource CheckBoxItemTemplate}"
           Grid.ColumnSpan="1"
           Grid.RowSpan="2"
           Grid.Column="1" />

และเปลี่ยนเครื่องมือเปลี่ยนสีของ IsColor ทรัพย์สินผ่านเป็นกล่องกาเลือก:

<CheckBox
                     Name="CHK_Gray"
                     VerticalAlignment="Center"
                     Foreground="DarkGray"
                     Grid.Row="6"
                     Grid.Column="0"
                     Grid.RowSpan="1"
                     Grid.ColumnSpan="2"
                     Unchecked="grayCheckBox_Unchecked"
                     Checked="grayCheckBox_Checked">
                     Show Created Assembly (in Grey)
                  </CheckBox>

ในการขึ้นแก่กันทรัพย์สินถูกสร้างแบบนี้:

 public class ColorHelper : DependencyObject
   {
      public static readonly DependencyProperty IsColorProperty = DependencyProperty.Register(
          "IsColor", typeof(bool), typeof(ColorHelper), new PropertyMetadata(false));


      public static void SetIsColor(DependencyObject target, Boolean value)
      {
         target.SetValue(IsColorProperty, value);
      }

      public static bool GetIsColor(DependencyObject target)
      {
         return (bool)target.GetValue(IsColorProperty);
      }
   }

ฉันต้องทำยังอยู่ในเช็คภาคไม่สมประกอบและเหตุการณ์จะเปลี่ยนค่าของ IsColor ทรัพย์สิน?

private void grayCheckBox_Checked(object sender, RoutedEventArgs e)
  {
     ???
  }
  private void grayCheckBox_Unchecked(object sender, RoutedEventArgs e)
  {
     ???
  }

ขอบคุณมากสำหรับความช่วยเหลือจากพวกคุณ

c# data-binding wpf
2021-11-23 18:29:39
1

คำตอบที่ดีที่สุด

0

คุณต้องการอ้างอิงไปที่ธาตุของที่คุณต้องการจะตั้งติดทรัพย์สินที่จะเริ่มต้นด้วย

คุณสามารถลอง นี้ วิธีการที่จะได้ TreeViewItem ส่วนประกอบของคน TreeView แล้วก็ตั้งค่าทรัพย์สินของพวกเขาถ้านั่นคือที่คุณต้องการ:

foreach(TreeViewItem tvi i tv.FindTreeViewItems())
    ColorHelper.SetIsColor(tvi, true);

โปรดสังเกตว่าคุณไม่สามารถแก้ไขที่ ต้นแบบ programmatically. และถึงแม้ว่าคุณจะไม่ช่วยอย่างที่มันจะถูกใช้กับผู้ที่แท้จริงส่วนประกอบ.

2021-11-24 14:43:11

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่