簡體   English   中英

使用數據觸發器在WPF中設置ItemsSource屬性

[英]Using datatriggers to set the ItemsSource property in WPF

我一直試圖基於也綁定了數據觸發器的枚舉來設置WPF控件的項目源。

我一直做不到成功,我不確定這是正確的方法:

<DataTrigger Binding="{Binding EnumSetting}" Value="Test">
      <Setter TargetName="control" Property="ItemsSource" Value="{Binding Model}" />
</DataTrigger>

我一直在嘗試上述的不同版本。 任何人都可以幫助或指出我正確的方向。

例如,如果應該將其包裝在“ <'style'>”標簽中,我不認為應該這樣做,但是我不確定為什么它不起作用。

謝謝。

主要是您需要注意DP優先級 ,這意味着您不能直接在ItemsControl (或其子類)上設置ItemsSource,因為它將覆蓋觸發器。 相反,您應該使用默認的setter。

<ItemsControl>
     <ItemsControl.Style>
          <Style TargetType="ItemsControl">
               <Setter Property="ItemsSource" Value="SomeDefaultHere"/>
               <Style.Triggers>
                   <DataTrigger ...>
                        <Setter Property="ItemsSource" Value="SomeOverrideHere"/>
                   </DataTrigger>
               </Style.Triggers>
          </Style>
    </ItemsControl.Style>
</ItemsControl>

(除非您處於某些控制模板的觸發器中,否則您可能想要一種樣式。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM