我的 CMainViewModel 有一個名為 AnalogGaugeValue1 的屬性
在我的視窗上,我有一個資料模板,如下所示。我使用此模板加載名為 AnalogIOView 的用戶控制元件,并嘗試將 AnalogIOView 內的依賴屬性 GaugeValue1DP 系結到 AnalogGaugeValue1
<Window>
<Window.Resources>
<DataTemplate x:Key="AnalogIOViewTemplate" DataType="{x:Type local:CMainViewModel}">
<local:AnalogIOView
GaugeValue1DP="{Binding Path=AnalogGaugeValue1}" />
</DataTemplate>
</Window.Resources>
<Window>
我使用 ContentControl 在我的視窗中加載 AnalogIOViewTemplate,如下所示
<Grid>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="ContentTemplate" Value="
{StaticResource AnalogIOViewTemplate }" />
</Style>
</ContentControl.Style>
</ContentControl>
</Grid>
用戶控制元件在我的視窗上正確顯示,但我無法通過 CMainViewModel 中的系結設定模擬儀表值。
但是,如果我只是直接加載用戶控制元件(不使用控制元件模板),那么它可以正常作業,如下所示
<Grid>
<local:AnalogIOView GaugeValue1DP="{Binding Path=AnalogGaugeValue1}" />
</Grid>
我的問題是為什么使用 Content Control 模板和資料模板加載用戶控制元件時它不起作用
謝謝你的幫助
uj5u.com熱心網友回復:
您必須設定屬性,并且在 DataTemplate 上Content不設定也會更簡單。x:Key然后它會自動被選為 ContentControl 的 ContentTemplate。
<Window>
<Window.Resources>
<DataTemplate DataType="{x:Type local:CMainViewModel}">
<local:AnalogIOView GaugeValue1DP="{Binding AnalogGaugeValue1}"/>
</DataTemplate>
</Window.Resources>
<Grid>
<ContentControl Content="{Binding}"/>
</Grid>
<Window>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461817.html
