2013-10-12 78 views
0

我認爲我有this question中描述的相同問題。DataTemplate中的靜態資源無法解析

<ItemsControl ItemsSource="{Binding Buttons}"> 
    ... 
    <DataTemplate> 
     <RadioButton Style="{StaticResource {x:Type ToggleButton}}"/> 
    ... 

在這種情況下,靜態資源未被解析。我試圖根據上面的鏈接將其更改爲DynamicResource,但這不能解決問題。我能做些什麼來訪問DataTemplate中的StaticResource?

+0

您引用的風格如何以及在哪裏定義? – lisp

+0

我沒有定義它......不太熟悉XAML的這一面。我需要在某個地方定義它嗎? – Sherlock

+0

如果你想在你的RadioButton上使用ToggleButton的默認樣式(不是你的覆蓋默認樣式),那麼不需要。但這對我很有用。你怎麼知道資源沒有解決? – lisp

回答

1

如果您沒有爲單選按鈕定義GroupName,那麼它們將根據其父容器進行分組,即單個堆棧面板/網格/停靠面板中的所有無線電將表現得好像具有相同的組名。你可以改變你的用戶界面,使所有的按鈕將駐留在同一個容器中?

如果這是不可能的,對用戶控件定義String類型的屬性,然後綁定GroupName(每個單選按鈕),以該屬性

GroupName="{Binding RelativeSource={RelativeSource FinsAncestor, AncestorType={x:Type my:MyUserControl}}, Path=CurrentGroupName}" 

然後,在用戶控制裝置的每個實例中,您可以設置不同的組名稱。

+0

我把他們全部在單獨的Grid容器中。問題仍然存在。我盡我所能避免爲每個用戶控件創建一個隨機字符串作爲GroupName,但它看起來像我可能不得不沿着這條路線。 – Sherlock

+0

您不必創建隨機字符串,讓'UserControl'的用戶(即創建UC實例的開發人員)定義組。只要該屬性是「DependencyProperty」,他們就可以將其綁定到視圖模型上的屬性(如果需要的話)。 – XAMeLi