我有一个使用 ShowDialog 显示的窗口。我试图从用户那里获得的值之一是以 GB 或 TB 为单位的大小。所以我有两个控件,一个来自WPF 扩展工具包的 IntegerUpDown和一个 ComboBox:
<xctk:IntegerUpDown Name="SizeN" Minimum="1" Maximum="1023" Increment="1" Value="100"/>
<ComboBox Name="SizeS" SelectedIndex="0">
<ComboBoxItem>GB</ComboBoxItem>
<ComboBoxItem>TB</ComboBoxItem>
</ComboBox>
我将对话框的 DataContext 设置为自身。我已经定义了容量属性:
public ulong Capacity { get; set; }
public CustomWindow()
{
InitializeComponent();
DataContext = this;
}
我已经创建了一个 IMultiValueConverter,PowerConverter,它接受一个 int 和一个字符串并返回 ulong。我认为正确的 MultiBinding 是:
<Window.Resources>
<local:PowerConverter x:Key="CapacityConverter" />
</Window.Resources>
<MultiBinding Converter="{StaticResource CapacityConverter}">
<Binding ElementName="SizeN" Path="Value" />
<Binding ElementName="SizeS" Path="SelectedValue" />
</MultiBinding>
我不知道如何将此绑定分配给对话框上的容量属性。我希望 WPF 自动为我设置容量属性。有任何想法吗?