我有一個Accordion控件,我綁定值並將它們顯示在DataTemplate中。 這是我在我的用戶控件:如何從代碼隱藏的DataTemplate中的TextBlock獲取文本
<layoutToolkit:Accordion x:Name="MyAccordion">
<layoutToolkit:Accordion.ItemTemplate>
<DataTemplate >
<TextBlock x:Name="Header" Text="{Binding Header}"/>
</DataTemplate>
</layoutToolkit:Accordion.ItemTemplate>
<layoutToolkit:Accordion.ContentTemplate>
<DataTemplate>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="Content" Text="{Binding Content}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Button x:Name="MyMethod" Content="Method" Click="MyMethod"/>
</StackPanel>
<StackPanel>
</DataTemplate>
</layoutToolkit:Accordion.ContentTemplate>
我的綁定工作,現在我希望能夠使用文本從文本塊中代碼的方法適用落後,但我希望這個值取決於哪個手風琴是開放的。 是否有可能實現這一目標?
這是我的代碼隱藏如何:
public MyUserCOntrol()
{
InitializeComponent();
this.MyAccordion.SelectionMode = AccordionSelectionMode.ZeroOrOne;
//method to fill the accordion
this.MyAccordion.ItemsSource = MainWindow._RE.ListActionsParType;
}
public void MyMethod(object sender, EventArgs e)
{
string TxtBlockContent = ....;
// so i can use this value in other operations
}
我想創建一個方法(在這裏是myMethode),我將申請上的按鈕點擊該值取決於在使用哪個手風琴是開放的
這是錯誤的做法。你從哪裏得到這個'Header'屬性?無論在MainWindow._RE.ListActionsParType中是什麼,都要實現INotifyPropertyChanged並在代碼隱藏中設置它的Header屬性。這將更新Accordion項目中的文字。 –
@EdPlunkett謝謝你的回答。我設法使用INotifyPropertyChanged顯示所有信息。我想要的是能夠使用textblock中的文本作爲字符串,以便我可以在方法中使用它,並且我希望此值根據哪個手風琴被展開而改變 – 281
這是錯誤的方法。文本塊中的文本來自Header屬性。更改標題屬性,文本將會改變。 –