0
不太確定如果我以錯誤的方式接近,無法看到解決方案,或者只是在wpf引擎中達到限制。我有一個用戶控件,在一個網格,我正在嘗試設置在控制範圍之內的網格視圖的DisplayMemberBinding
,從調用它的控制:將約束表達式傳遞給usercontrol
用戶控件:(剪斷,爲了簡潔)
<UserControl x:Class="MyAssembly.UserControls.IncludedItems">
<Grid>
<ListView x:Name="lstViewItems" Grid.Row="0" ItemsSource="{Binding AffectedFiles, FallbackValue={x:Null}}">
<ListView.View>
<GridView>
<GridViewColumn Width="90">
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<DockPanel>
<CheckBox Margin="5,2" IsChecked="{Binding Path=DataContext.AllSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, FallbackValue=false}" />
<TextBlock Text="Include?" />
</DockPanel>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid Width="90">
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding ShouldInclude}" />
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn
x:Name="gvcDisplayPath"
Header="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=ColumnHeader, FallbackValue=Path}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
</UserControl>
所以在gvcDisplayPath
我希望能夠設置的DisplayMemberPath,從呼叫控制:
<Window x:localControls="clr-namespace:MyAssembly.UserControls">
<Grid>
...
<localControls:IncludedItems DataContext="{Binding FallbackValue={StaticResource vmDesignModel}}" DisplayMemberPath="Catalog" ColumnHeader="Site" />
...
</Grid>
</Window>
我曾嘗試在該控件設置代碼隱藏在C tr和OnInitialised
方法,基於依賴項屬性,但沒有奏效(因爲dp尚未設置爲該值)。
由於
試圖在設定它更改處理程序的依賴項屬性? (假設您將DisplayMemberPath DP添加到IncludedItems控件 –
您的'gvcDisplayPath'控件是一個'GridViewColumn'對象...'GridViewColumn'對象上沒有'DisplayMemberPath'屬性。請考慮您想要的內容並編輯您的 – Sheridan
@NicholasW謝謝!知道我錯過了什麼,我會在一秒內發佈我的解決方案 – Psytronic