DataFormにいくつかのComboBoxがあり、特定のComboBoxが選択されるまで特定のComboBoxが無効になるようにしようとしています。この目的のためCanEditCombo
に、DataContextにバインドされたクラスで名前が付けられた通知プロパティを作成し、ComboBoxを次のように構成しました。
<ComboBox ... IsEnabled="{Binding CanEditCombo, Mode=OneWay}" />
これCanEditCombo
は最初はfalseですが、DataFormが最初にロードされたときにComboBoxを編集できます。
同じIsEnabled
バインディング構文をDataFormのTextBoxに適用すると、期待どおりに機能します。最初は無効になっていますが、一度有効にするCanEditCombo
とtrueになります。
XAMLのチャンクの例を次に示します。
<toolkit:DataForm CurrentItem="{Binding NewProject, Mode=TwoWay}" x:Name="dfNewProject" CommandButtonsVisibility="None">
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
...
<toolkit:DataField>
<ComboBox ItemsSource="{Binding ProjectOptions, Mode=OneWay}"
SelectedValue="{Binding Options, Mode=TwoWay}"
DisplayMemberPath="Value"
SelectedValuePath="Key"
IsEnabled="{Binding CanEditCombo, Mode=OneWay}" />
</toolkit:DataField>
...
</StackPanel>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm>
さらに、ComboBoxのIsEnabled
上のマークアップでComboBoxのプロパティをFalseにハードコーディングしても、編集可能です。
IsEnable
ComboBoxがDataFormにある場合、バインディング構文を介してComboBoxのプロパティを設定するにはどうすればよいですか?