سلام وقت بخیر
یه treeview دارم که هر شاخه آن دارای یک textbox یه Combobox و یک checkbox هست و همین طور یک فرم پاپ آپ که یه سری فیلد دیگه ای داخل این popUp هست میخوام وقتی یه textbox در شاخه پدر تغییر میکنه combobox شاخه های فرزند هم تغییر کنه و وقتی مقدار عددی یه textbox شاخه پدر تغییر میکنه به زیر شاخه ها هم اعمال بشه الان من برای هر شاخه به طور مجزا برای هر فیلد یه textchange یا click یا event های موردنظر رو کدنویسی کردم الان خیلی کدم بزرگ شده و تغییر جزی نیاز به تغییر کل زیرشاخه های این درخت داره میخوام یه روشی استفاده کنم که نیاز باشه فقط چند تابع اصلی بنویسم که برای همه زیرشاخه ها اعمال بشه البته با انتخاب مثلا یه شاخه پدر تغییر برروی زیر شاخه های فرزند اعمال بشه امکانش هست منو راهنمایی کنید ممنون میشم
مثلا هر شاخه مشابه کد زیر فیلدهای مختلف داره و همه شاخه ها این فیلدهارو داره که باید به طور مجزا مقداردهی بشن ولی اگر شاخه پدر تغییر کنه باید یه جوری مقادیرشون مثلا برای تکست باکس تقسیم بشه بین زیرشاخه ها یا مثلا کمبوباکس باید مقدارش یکی باشه
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Name="SpeedCbx" Text="سرعتی "></TextBlock>
<TextBox Name="Speedtxt" Height="20" Width="35" TextChanged="Speedtxt_TextChanged" ></TextBox>
<ComboBox Foreground="{Binding BackgroundTextControl}" FontSize="15" Style="{DynamicResource ComboBoxStyle}" Height="20" Width="50" x:Name="cbxSpeed" SelectionChanged="cbxSpeed_SelectionChanged" FontFamily="/Rehab.GUI;component/Font/#B Nazanin" Margin="2,0"/>
<CheckBox x:Name="cbSpeed" FontSize="15" VerticalAlignment="Center" FontFamily="/Rehab.GUI;component/Font/#B Nazanin" Click="cbSpeed_Click" Margin="2,0"/>
<Button Style="{DynamicResource ButtonCustomize}" x:Name="btnCustomizeSpeed" Content="سفارشی" FontSize="15" Click="btnCustomizeSpeed_Click" FontFamily="/Rehab.GUI;component/Font/#B Nazanin" Margin="2,0"></Button>
<Popup Name="popupCustomizeSpeed" HorizontalAlignment="Stretch" AllowsTransparency="True" VerticalAlignment="Stretch" Placement="Center">
<Border Background="{Binding Background}" CornerRadius="10" Padding="30" Margin="30,10,50,10">
<Grid FlowDirection="RightToLeft">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Name="TimePercentSpeedlbl" FontFamily="/Rehab.GUI;component/Font/#B Nazanin">درصد زمان</TextBlock>
<ComboBox Style="{DynamicResource ComboBoxStyle}" Grid.Row="0" Grid.Column="1" Name="TimePercentSpeedcbx" Width="50" FontFamily="/Rehab.GUI;component/Font/#B Nazanin">
<ComboBoxItem>01</ComboBoxItem>
<ComboBoxItem>02</ComboBoxItem>
<ComboBoxItem>03</ComboBoxItem>
<ComboBoxItem>04</ComboBoxItem>
<ComboBoxItem>05</ComboBoxItem>
<ComboBoxItem>06</ComboBoxItem>
<ComboBoxItem>07</ComboBoxItem>
<ComboBoxItem>08</ComboBoxItem>
<ComboBoxItem>09</ComboBoxItem>
<ComboBoxItem>10</ComboBoxItem>
<ComboBoxItem>11</ComboBoxItem>
<ComboBoxItem>12</ComboBoxItem>
<ComboBoxItem>13</ComboBoxItem>
<ComboBoxItem>14</ComboBoxItem>
<ComboBoxItem>15</ComboBoxItem>
<ComboBoxItem>16</ComboBoxItem>
<ComboBoxItem>17</ComboBoxItem>
<ComboBoxItem>18</ComboBoxItem>
<ComboBoxItem>19</ComboBoxItem>
<ComboBoxItem>20</ComboBoxItem>
<ComboBoxItem>21</ComboBoxItem>
</ComboBox>
<TextBlock Grid.Row="1" Grid.Column="0" Name="ExtensionSpeedlbl" FontFamily="/Rehab.GUI;component/Font/#B Nazanin">اندازه توپ</TextBlock>
<ComboBox Style="{DynamicResource ComboBoxStyle}" Grid.Row="1" Grid.Column="1" Name="ExtensionSpeedcbx" Width="50" FontFamily="/Rehab.GUI;component/Font/#B Nazanin">
<ComboBoxItem>01</ComboBoxItem>
<ComboBoxItem>02</ComboBoxItem>
<ComboBoxItem>03</ComboBoxItem>
<ComboBoxItem>04</ComboBoxItem>
<ComboBoxItem>05</ComboBoxItem>
<ComboBoxItem>06</ComboBoxItem>
<ComboBoxItem>07</ComboBoxItem>
<ComboBoxItem>08</ComboBoxItem>
<ComboBoxItem>09</ComboBoxItem>
<ComboBoxItem>10</ComboBoxItem>
<ComboBoxItem>11</ComboBoxItem>
<ComboBoxItem>12</ComboBoxItem>
<ComboBoxItem>13</ComboBoxItem>
<ComboBoxItem>14</ComboBoxItem>
<ComboBoxItem>15</ComboBoxItem>
<ComboBoxItem>16</ComboBoxItem>
<ComboBoxItem>17</ComboBoxItem>
<ComboBoxItem>18</ComboBoxItem>
<ComboBoxItem>19</ComboBoxItem>
<ComboBoxItem>20</ComboBoxItem>
<ComboBoxItem>21</ComboBoxItem>
</ComboBox>
<Button x:Name="btnCreateCustomizeSpeed" Grid.Column="1" Style="{DynamicResource ButtonCreate}"
HorizontalAlignment="Left" Margin="40,0,0,10" VerticalAlignment="Bottom" Background="White"
Foreground="Black" FontSize="21.333" FontWeight="Bold" Grid.Row="3" Click="btnCreateCustomizeSpeed_Click" FontFamily="/Rehab.GUI;component/Font/#B Nazanin"/>
<Button Style="{DynamicResource ButtonExit}" Grid.Row="0" Grid.Column="0" Margin="-30,-30,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Background="White"
Foreground="Black" FontSize="21.333" FontWeight="Bold" Click="BtnSpeedExit" FontFamily="/Rehab.GUI;component/Font/#B Nazanin"/>
</Grid>
</Border>
</Popup>
</StackPanel>
</TreeViewItem.Header>