2015-09-29 49 views
0

我在我的XAML中有多個列表框。之前我有這個代碼如下:是否可以在XAML中選擇AncestorType的名稱

<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" Value="True"> 
            <Setter TargetName="Rectangle" Property="Fill" Value="Red"/> 
           </DataTrigger> 

是否可以引用我的其他列表框?我的名字我的第二個列表框這樣:

x:Name="HappyBox" 

如何改變的代碼上線名稱爲「HappyBox」

僅引用列表框如果有任何問題,請諮詢

回答

2

如果您在控制命名,您不必通過使用AncestorType來指定類型,您可以使用ElementName

<DataTrigger Binding="{Binding IsSelected, ElementName=HappyBox}" Value="True"> 
    <Setter TargetName="Rectangle" Property="Fill" Value="Red"/> 
</DataTrigger> 

就像那個

+0

我的問題也是我的列表框在其他名稱範圍,所以我無法找到我的的ElementName HappyBox。那裏有解決方案嗎?如何獲得這個? – esispaned

+0

但是你在VisualTree的控件父母中有'HappyBox',對吧? – maiksaray

+0

不:)我更新我的代碼。所以我有兩個列表框 - 一個是x:Name =「LstBox」和第二個「SldBox」。某處有「本地:SliderNode」。在「local:SliderNode」中,我定義了「AncestorType = {x:Type ListBoxItem}」。我沒有定義所有的ListBoxItems,但只是SldBox。我會解決這個惠顧親子關係嗎? – esispaned

相關問題