0
這不是字符串空值回退的副本。我正在尋求複雜類型的後備。
原來的問題
這是一個後續問題的問題,我昨天問過:
Bind WPF Command to ViewModel property in C# XAML
接受的答案給我的核心部分是這樣的:
<Window.Resources>
<DataTemplate DataType="{x:Type local:SettingsPathSelectorViewModel}">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding SettingsPath}" />
<Button
Content="..."
Command="{Binding OpenFile}"
HorizontalAlignment="Left"
MinWidth="40"
Margin="4,0,0,0"
/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<StackPanel Orientation="Vertical">
<Label>First Path</Label>
<ContentControl Content="{Binding FirstPath}" />
</StackPanel>
</Grid>
A DataTemplate
是爲自定義類型創建的, n a ContentControl
被綁定到該類型的屬性。
現在的問題是,屬性(示例中的FirstPath
)可能是null
並且不呈現UI元素。我怎麼能做到從DataTemplate
呈現的控制,即使該屬性是null
由於EVK建議我已經實現了一個轉換器:
public class PathSelectorConverter : IValueConverter
{
public object Convert(object o, Type type, object parameter, CultureInfo culture)
{
return o ?? new PathSelector();
}
public object ConvertBack(object o, Type type, object parameter, CultureInfo culture)
{
return o ?? new PathSelector();
}
}
我已經添加了轉換器,以資源的實例我的窗口:
<view:PathSelectorConverter x:Key="pathSelectorConverter"/>
並將其添加在綁定的屬性:
但是,如果值不爲空
你能不能確保它不是null而是? – Evk
@Evk不幸的是沒有。我有一個可以選擇的元素列表,每個元素都有一個'FirstPath'屬性。如果元素List是空的,我有這種不希望的行爲。 –
然後,您可以使用轉換器,如果提供的值爲null,將返回SettingsPathSelectorViewModel的某個默認實例。 – Evk